diff options
author | ache <ache@FreeBSD.org> | 1999-06-08 14:59:12 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1999-06-08 14:59:12 +0000 |
commit | b00495cccd07075e873857235aa138a2be990b3d (patch) | |
tree | b461095d9ccd55c9f4804fa363cca9d0f6cddbd5 /gnu | |
parent | f30751c163814b434778611b74a47da97079dd02 (diff) | |
download | FreeBSD-src-b00495cccd07075e873857235aa138a2be990b3d.zip FreeBSD-src-b00495cccd07075e873857235aa138a2be990b3d.tar.gz |
Just ignore malformed locale variable unless -d specified
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/usr.bin/man/man/man.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/gnu/usr.bin/man/man/man.c b/gnu/usr.bin/man/man/man.c index 92e9f84..0ecae7f 100644 --- a/gnu/usr.bin/man/man/man.c +++ b/gnu/usr.bin/man/man/man.c @@ -479,18 +479,22 @@ man_getopt (argc, argv) || tmp != short_locale + 2 || strlen(tmp + 1) < 4 || tmp[3] != '.') { - errno = EINVAL; - perror ("bad ctype locale env"); - exit (1); - } - tmp[1] = short_locale[0]; - tmp[2] = short_locale[1]; - short_locale = tmp + 1; - tmp = short_locale + 3; - for (pltable = ltable; pltable->lcode != NULL; pltable++) { - if (strcmp(pltable->lcode, tmp) == 0) { - locale_nroff = pltable->nroff; - break; + if (debug) { + errno = EINVAL; + perror ("ctype locale env"); + } + free(short_locale); + locale = NULL; + } else { + tmp[1] = short_locale[0]; + tmp[2] = short_locale[1]; + short_locale = tmp + 1; + tmp = short_locale + 3; + for (pltable = ltable; pltable->lcode != NULL; pltable++) { + if (strcmp(pltable->lcode, tmp) == 0) { + locale_nroff = pltable->nroff; + break; + } } } } |