tags 29448 fixed-upstream
thanks
On Sat, Nov 14, 1998 at 04:08:20PM +0100, Marco Budde wrote:
> There's a problem with the $LANG support of apropos & Co.
> The program displays always the description in English.
I've now finally implemented this upstream; support will be in man-db
2.5.0.
Mon Sep 3 11:38:11 BST 2007 Colin Watson <[EMAIL PROTECTED]>
Create and use databases for non-English manual hierarchies (Debian
bug #29448). Extensive changes elsewhere to support this by means of
better UTF-8 handling and knowledge of more languages.
* src/check_mandirs.c (make_database_directory): New function.
(create_db, update_db): Use it.
(purge_missing): Check that the database exists before starting.
* src/mandb.c (process_manpath): New function, split out from main.
Make the single_filename check aware that the file might be in a
per-locale subdirectory that we aren't processing right now.
(main): Use it. Move man_owner, purged, and strays to file scope.
Build databases for all per-locale subdirectories.
* src/straycats.c (straycats): Constify manpath argument.
* src/whatis.c (main): Sync locale handling with src/man.c, in order
to look up per-locale databases correctly. Based on a patch by
Nicolas François (Debian bug #281811).
* include/manconfig.h.in (straycats): Update prototype.
* src/man.c (duplicate_candidates): New function to determine
whether candidates are substantially duplicated, and if so in
which direction. The logic is better than before: it now knows how
to compare locales and pick the best available candidate for each
language, and prefers UTF-8 candidates if everything else is
equal.
(add_candidate): Move duplication logic to duplicate_candidates.
Adjust insertion handling so that we can drop old candidates in
favour of new candidates.
* src/manp.c (check_and_give): Remove.
(unpack_locale_bits): New function, inspired by _nl_explode_name
in libintl.
(free_locale_bits): New function.
(add_nls_manpath): Instead of trying individual directories (which
doesn't work so well with character set aliasing), iterate over
all subdirectories of each manpath entry and add all those
matching the current locale's language and (if specified)
territory. This now includes ll.CODESET as well as more
conventional locale names.
* src/manp.h: Declare 'struct locale_bits'. Prototype
unpack_locale_bits and free_locale_bits.
* src/man.c (lang_dir): Move to ...
* src/util.c (lang_dir): ... here.
* src/lexgrog.l (long_options, args, main): New -E/--encoding
option.
(usage): Document it.
(cs_name, hu_name, ja_name, ru_name): Recode to UTF-8.
(find_name): Add encoding argument. Guess the page's encoding from
its filesystem location (or use encoding if supplied), and add an
iconv command to recode it to UTF-8.
* man/man1/lexgrog.man1 (SYNOPSIS, OPTIONS): Document --encoding.
* src/straycats.c (check_for_stray): Guess the page's encoding from
its filesystem location, and add an iconv command to recode it to
UTF-8.
* src/whatis.c (simple_convert): New function to simplify iconv
handling.
(display): Convert output from UTF-8 to locale charset.
(main): Initialise iconv descriptor.
* include/manconfig.h.in (find_name): Update prototype.
(lang_dir): Add prototype.
* configure.ac: Call AM_ICONV.
* src/Makefile.in (mandb, lexgrog): Add encodings.o.
* src/Makefile.in (whatis, apropos): Add encodings.o and
$(LIBICONV).
* src/encodings.c (directory_table): Add Serbian -> ISO-8859-5.
* src/lexgrog.l (cs_name, hu_name): Expand character classes
containing non-ASCII characters into the form (a|b|...); flex
doesn't understand Unicode well enough to deal with them
otherwise.
(cs_name, ru_name): Add more possible translations.
(ko_name, sk_name, sr_name, tr_name, zh_CN_name, zh_TW_name): Add.
(find_name_decompressed): Ignore exit status from decompressor
pipeline; iconv may exit non-zero on misencoded pages, but if we
manage to extract a whatis from it anyway then it doesn't really
matter.
* src/whatis.c (usage): Document -L/--locale.
* man/man1/apropos.man1 (SYNOPSIS, OPTIONS): Likewise.
* man/man1/whatis.man1 (SYNOPSIS, OPTIONS): Likewise.
* docs/NEWS: Document this.
Regards,
--
Colin Watson [EMAIL PROTECTED]
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]