summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Watson <cjwatson@debian.org>2019-08-03 12:15:34 +0100
committerColin Watson <cjwatson@debian.org>2019-08-03 12:15:34 +0100
commitf22ec2853f6ea2123dc4a1fee566a828e8d86bc6 (patch)
treeb4d8e7309d6d25acee9b3a94f6e07acb209daacd
parent182141146d0ad9c735949840504bdfc66332da4e (diff)
parent74d8f72dc1ca9620d3e8e1ae2ed9b19047ba348f (diff)
Import man-db_2.8.6.orig.tar.xz
-rw-r--r--ChangeLog670
-rw-r--r--Makefile.in5
-rw-r--r--NEWS41
-rw-r--r--README12
-rw-r--r--aclocal.m43
-rw-r--r--bootstrap.conf16
-rwxr-xr-xbuild-aux/config.guess17
-rwxr-xr-xbuild-aux/config.sub16
-rw-r--r--build-aux/texinfo.tex7
-rw-r--r--config.h.in31
-rwxr-xr-xconfigure682
-rw-r--r--configure.ac16
-rw-r--r--docs/HACKING3
-rw-r--r--docs/INSTALL.quick2
-rw-r--r--docs/Makefile.in5
-rw-r--r--docs/man-db.lsm6
-rw-r--r--gl/lib/Makefile.am120
-rw-r--r--gl/lib/Makefile.in306
-rw-r--r--gl/lib/argp-help.c10
-rw-r--r--gl/lib/argp.h9
-rw-r--r--gl/lib/cdefs.h2
-rw-r--r--gl/lib/chown.c151
-rw-r--r--gl/lib/fchown-stub.c16
-rw-r--r--gl/lib/fcntl.c2
-rw-r--r--gl/lib/file-set.c2
-rw-r--r--gl/lib/gettext.h13
-rw-r--r--gl/lib/gl_anyhash1.h31
-rw-r--r--gl/lib/gl_anyhash2.h82
-rw-r--r--gl/lib/gl_anyhash_primes.h87
-rw-r--r--gl/lib/gl_anylinked_list1.h48
-rw-r--r--gl/lib/gl_anylinked_list2.h1195
-rw-r--r--gl/lib/gl_anyrbtree_list1.h76
-rw-r--r--gl/lib/gl_anyrbtree_list2.h1028
-rw-r--r--gl/lib/gl_anytree_list1.h41
-rw-r--r--gl/lib/gl_anytree_list2.h940
-rw-r--r--gl/lib/gl_array_list.c680
-rw-r--r--gl/lib/gl_array_list.h34
-rw-r--r--gl/lib/gl_hash_map.c337
-rw-r--r--gl/lib/gl_hash_map.h34
-rw-r--r--gl/lib/gl_hash_set.c317
-rw-r--r--gl/lib/gl_hash_set.h34
-rw-r--r--gl/lib/gl_linkedhash_list.c116
-rw-r--r--gl/lib/gl_linkedhash_list.h34
-rw-r--r--gl/lib/gl_list.c3
-rw-r--r--gl/lib/gl_list.h843
-rw-r--r--gl/lib/gl_map.c3
-rw-r--r--gl/lib/gl_map.h382
-rw-r--r--gl/lib/gl_rbtree_list.c102
-rw-r--r--gl/lib/gl_rbtree_list.h34
-rw-r--r--gl/lib/gl_set.c3
-rw-r--r--gl/lib/gl_set.h281
-rw-r--r--gl/lib/gl_xlist.c3
-rw-r--r--gl/lib/gl_xlist.h177
-rw-r--r--gl/lib/gl_xmap.c3
-rw-r--r--gl/lib/gl_xmap.h91
-rw-r--r--gl/lib/gl_xset.c3
-rw-r--r--gl/lib/gl_xset.h76
-rw-r--r--gl/lib/hash-pjw-bare.c42
-rw-r--r--gl/lib/hash-pjw-bare.h24
-rw-r--r--gl/lib/lchown.c117
-rw-r--r--gl/lib/regexec.c2
-rw-r--r--gl/lib/stdopen.c66
-rw-r--r--gl/lib/stdopen.h14
-rw-r--r--gl/lib/sys_stat.in.h9
-rw-r--r--gl/lib/vasnprintf.c9
-rw-r--r--gl/lib/verify.h6
-rw-r--r--gl/lib/xstdopen.c35
-rw-r--r--gl/lib/xstdopen.h28
-rw-r--r--gl/m4/chown.m4208
-rw-r--r--gl/m4/getcwd-path-max.m416
-rw-r--r--gl/m4/gnulib-comp.m471
-rw-r--r--gl/m4/lchown.m438
-rw-r--r--gl/m4/math_h.m45
-rw-r--r--gl/m4/printf.m4190
-rw-r--r--gl/m4/threadlib.m482
-rw-r--r--gl/po/POTFILES.in40
-rw-r--r--gl/po/af.po19
-rw-r--r--gl/po/be.po19
-rw-r--r--gl/po/bg.gmobin1000 -> 6044 bytes
-rw-r--r--gl/po/bg.po749
-rw-r--r--gl/po/ca.po19
-rw-r--r--gl/po/cs.po19
-rw-r--r--gl/po/da.po19
-rw-r--r--gl/po/de.gmobin3997 -> 4855 bytes
-rw-r--r--gl/po/de.po454
-rw-r--r--gl/po/el.po19
-rw-r--r--gl/po/eo.gmobin3758 -> 4588 bytes
-rw-r--r--gl/po/eo.po302
-rw-r--r--gl/po/es.po19
-rw-r--r--gl/po/et.po19
-rw-r--r--gl/po/eu.po19
-rw-r--r--gl/po/fi.po19
-rw-r--r--gl/po/fr.gmobin4035 -> 4911 bytes
-rw-r--r--gl/po/fr.po321
-rw-r--r--gl/po/ga.po19
-rw-r--r--gl/po/gl.po19
-rw-r--r--gl/po/hu.po19
-rw-r--r--gl/po/it.gmobin3941 -> 4790 bytes
-rw-r--r--gl/po/it.po296
-rw-r--r--gl/po/ja.po19
-rw-r--r--gl/po/ko.po19
-rw-r--r--gl/po/man-db-gnulib.pot21
-rw-r--r--gl/po/ms.po19
-rw-r--r--gl/po/nb.po19
-rw-r--r--gl/po/nl.gmobin3966 -> 4739 bytes
-rw-r--r--gl/po/nl.po296
-rw-r--r--gl/po/pl.gmobin3998 -> 4822 bytes
-rw-r--r--gl/po/pl.po280
-rw-r--r--gl/po/pt.gmobin3979 -> 4716 bytes
-rw-r--r--gl/po/pt.po672
-rw-r--r--gl/po/pt_BR.gmobin3996 -> 4810 bytes
-rw-r--r--gl/po/pt_BR.po307
-rw-r--r--gl/po/ro.po19
-rw-r--r--gl/po/ru.gmobin5060 -> 6161 bytes
-rw-r--r--gl/po/ru.po309
-rw-r--r--gl/po/rw.po19
-rw-r--r--gl/po/sk.po19
-rw-r--r--gl/po/sl.po19
-rw-r--r--gl/po/sr.po19
-rw-r--r--gl/po/sv.gmobin3827 -> 4638 bytes
-rw-r--r--gl/po/sv.po281
-rw-r--r--gl/po/tr.po19
-rw-r--r--gl/po/uk.gmobin4882 -> 5964 bytes
-rw-r--r--gl/po/uk.po317
-rw-r--r--gl/po/vi.po19
-rw-r--r--gl/po/zh_CN.po19
-rw-r--r--gl/po/zh_TW.gmobin638 -> 4389 bytes
-rw-r--r--gl/po/zh_TW.po792
-rw-r--r--include/manconfig.h.in8
-rw-r--r--init/Makefile.in5
-rw-r--r--init/systemd/Makefile.in5
-rw-r--r--init/systemd/man-db.service.in2
-rw-r--r--lib/Makefile.am8
-rw-r--r--lib/Makefile.in65
-rw-r--r--lib/README6
-rw-r--r--lib/debug.c5
-rw-r--r--lib/encodings.c25
-rw-r--r--lib/encodings.h4
-rw-r--r--lib/glcontainers.c77
-rw-r--r--lib/glcontainers.h72
-rw-r--r--lib/hashtable.c232
-rw-r--r--lib/hashtable.h61
-rw-r--r--lib/lower.c47
-rw-r--r--lib/lower.h24
-rw-r--r--lib/orderfiles.c64
-rw-r--r--lib/orderfiles.h4
-rw-r--r--lib/pathsearch.c25
-rw-r--r--lib/pathsearch.h12
-rw-r--r--lib/sandbox.c34
-rw-r--r--lib/security.c5
-rw-r--r--lib/security.h3
-rw-r--r--lib/wordfnmatch.c23
-rw-r--r--lib/wordfnmatch.h4
-rw-r--r--lib/xchown.c49
-rw-r--r--lib/xchown.h29
-rw-r--r--libdb/Makefile.in5
-rw-r--r--libdb/db_btree.c33
-rw-r--r--libdb/db_delete.c58
-rw-r--r--libdb/db_gdbm.c176
-rw-r--r--libdb/db_lookup.c195
-rw-r--r--libdb/db_ndbm.c8
-rw-r--r--libdb/db_storage.h24
-rw-r--r--libdb/mydbm.h5
-rw-r--r--m4/man-arg-manual.m413
-rw-r--r--m4/man-arg-systemdsystemunitdir.m416
-rw-r--r--m4/man-arg-systemdtmpfilesdir.m416
-rw-r--r--m4/man-gnu-nroff.m44
-rw-r--r--man/Makefile.in5
-rw-r--r--man/da/Makefile.in5
-rw-r--r--man/de/Makefile.in5
-rw-r--r--man/es/Makefile.in5
-rw-r--r--man/fr/Makefile.in5
-rw-r--r--man/id/Makefile.in5
-rw-r--r--man/it/Makefile.in5
-rw-r--r--man/ja/Makefile.in5
-rw-r--r--man/nl/Makefile.in5
-rw-r--r--man/pl/Makefile.in5
-rw-r--r--man/po4a/Makefile.in5
-rw-r--r--man/pt/Makefile.in5
-rw-r--r--man/pt_BR/Makefile.in5
-rw-r--r--man/ru/Makefile.in5
-rw-r--r--man/sr/Makefile.in5
-rw-r--r--man/sv/Makefile.in5
-rw-r--r--man/tr/Makefile.in5
-rw-r--r--man/zh_CN/Makefile.in5
-rw-r--r--manual/Makefile.am17
-rw-r--r--manual/Makefile.in111
-rw-r--r--manual/intro.me3
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/ast.gmobin19722 -> 19639 bytes
-rw-r--r--po/ast.po416
-rw-r--r--po/ca.gmobin19798 -> 19717 bytes
-rw-r--r--po/ca.po416
-rw-r--r--po/cs.gmobin20646 -> 20555 bytes
-rw-r--r--po/cs.po416
-rw-r--r--po/da.gmobin18724 -> 18653 bytes
-rw-r--r--po/da.po416
-rw-r--r--po/de.gmobin20441 -> 20376 bytes
-rw-r--r--po/de.po416
-rw-r--r--po/eo.gmobin18856 -> 18792 bytes
-rw-r--r--po/eo.po416
-rw-r--r--po/es.gmobin19849 -> 19771 bytes
-rw-r--r--po/es.po416
-rw-r--r--po/fi.gmobin6228 -> 6150 bytes
-rw-r--r--po/fi.po416
-rw-r--r--po/fr.gmobin20603 -> 20529 bytes
-rw-r--r--po/fr.po416
-rw-r--r--po/id.gmobin19438 -> 19369 bytes
-rw-r--r--po/id.po416
-rw-r--r--po/it.gmobin8590 -> 8451 bytes
-rw-r--r--po/it.po416
-rw-r--r--po/ja.gmobin21625 -> 21551 bytes
-rw-r--r--po/ja.po416
-rw-r--r--po/man-db.pot415
-rw-r--r--po/nl.gmobin17885 -> 17822 bytes
-rw-r--r--po/nl.po416
-rw-r--r--po/pl.gmobin20551 -> 20454 bytes
-rw-r--r--po/pl.po416
-rw-r--r--po/pt.gmobin19244 -> 19180 bytes
-rw-r--r--po/pt.po416
-rw-r--r--po/pt_BR.gmobin19934 -> 19863 bytes
-rw-r--r--po/pt_BR.po416
-rw-r--r--po/ro.gmobin7999 -> 7920 bytes
-rw-r--r--po/ro.po416
-rw-r--r--po/ru.gmobin26190 -> 26101 bytes
-rw-r--r--po/ru.po416
-rw-r--r--po/sr.gmobin25529 -> 25441 bytes
-rw-r--r--po/sr.po416
-rw-r--r--po/sv.gmobin18796 -> 18725 bytes
-rw-r--r--po/sv.po416
-rw-r--r--po/tr.gmobin19265 -> 19201 bytes
-rw-r--r--po/tr.po416
-rw-r--r--po/vi.gmobin21704 -> 21599 bytes
-rw-r--r--po/vi.po416
-rw-r--r--po/zh_CN.gmobin18177 -> 18114 bytes
-rw-r--r--po/zh_CN.po416
-rw-r--r--po/zh_TW.gmobin17751 -> 17692 bytes
-rw-r--r--po/zh_TW.po416
-rw-r--r--src/Makefile.in5
-rw-r--r--src/accessdb.c3
-rw-r--r--src/catman.c31
-rw-r--r--src/check_mandirs.c160
-rw-r--r--src/descriptions.c75
-rw-r--r--src/descriptions.h15
-rw-r--r--src/descriptions_store.c46
-rw-r--r--src/globbing.c166
-rw-r--r--src/globbing.h8
-rw-r--r--src/globbing_test.c29
-rw-r--r--src/lexgrog_test.c41
-rw-r--r--src/man.c558
-rw-r--r--src/manconv_main.c5
-rw-r--r--src/mandb.c111
-rw-r--r--src/manp.c632
-rw-r--r--src/manp.h14
-rw-r--r--src/manpath.c11
-rw-r--r--src/straycats.c57
-rw-r--r--src/tests/Makefile.in5
-rw-r--r--src/ult_src.c52
-rw-r--r--src/ult_src.h20
-rw-r--r--src/whatis.c234
-rw-r--r--src/zsoelim.c129
-rw-r--r--src/zsoelim.h8
-rw-r--r--src/zsoelim.l67
-rw-r--r--src/zsoelim_main.c9
-rw-r--r--tools/Makefile.in5
265 files changed, 21026 insertions, 9697 deletions
diff --git a/ChangeLog b/ChangeLog
index 38f26248..e01cb4f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,673 @@
+2019-08-03 Colin Watson <cjwatson@debian.org>
+
+ * Version: 2.8.6.
+
+2019-08-03 Colin Watson <cjwatson@debian.org>
+
+ Update syscall lists from systemd bca5a0eacc
+
+ * lib/sandbox.c (make_seccomp_filter): Add rseq (see
+ https://github.com/systemd/systemd/issues/12127).
+
+2019-05-02 Colin Watson <cjwatson@debian.org>
+
+ Improve manual build portability slightly
+
+ * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
+ .tdvi.tps, .pp.cat, .pp.html): Use "mv -f" rather than just "mv", since
+ Automake seems to prefer that for its own rules.
+
+2019-05-02 Colin Watson <cjwatson@debian.org>
+
+ Make manual build more robust against failures
+
+ Fixes Savannah bug #56254.
+
+ * manual/Makefile.am ($(MANUAL).pp, .pp.dvi, .pp.ps, .pp.tdvi,
+ .tdvi.tps, .pp.cat, .pp.html): Write output to *.new files and rename
+ into place, so that failures are properly retried in future runs.
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Avoid configure error message if nroff is broken
+
+ * m4/man-gnu-nroff.m4 (MAN_PROG_GNU_NROFF): Adjust test arguments
+ slightly to avoid a spurious error message if nroff is sufficiently
+ broken that it doesn't produce numeric output for "\n(.g".
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Fix warnings when configuring --without-libseccomp
+
+ * lib/sandbox.c (_sandbox_load): Mark sandbox and permissive parameters
+ unused when HAVE_LIBSECCOMP is undefined, to avoid warnings from "gcc
+ -Wunused-parameter".
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ Add configure option to disable building manual
+
+ * m4/man-arg-manual.m4: New file.
+ * configure.ac: Add MAN_ARG_MANUAL.
+ * manual/Makefile.am: Perform most rules only if BUILD_MANUAL is true.
+ * manual/intro.me (Arguments to configure): Add --disable-manual.
+ * README (Non-generic arguments to configure): Update.
+ * NEWS: Document this.
+
+2019-03-03 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document container type changes.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Add some missing entries to lib/README
+
+ * lib/README: Add glcontainers.*, orderfiles.*, and sandbox.*.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Remove pipeline.* from lib/README
+
+ It's been a separate library since 2010.
+
+ * lib/README: Remove pipeline.*.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Inline lower into name_to_key
+
+ With only one remaining user, it wasn't pulling its weight.
+
+ * libdb/db_lookup.c (name_to_key): Inline the implementation of lower.
+ * lib/Makefile.am (libman_la_SOURCES): Remove lower.c and lower.h.
+ * lib/README: Remove lower.*.
+ * lib/lower.c, lib/lower.h: Remove.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Simplify case-insensitivity in word_fnmatch
+
+ Using FNM_CASEFOLD saves us from having to lower-case the pattern
+ manually, and it also fixes the behaviour of "apropos -w" when given a
+ non-lower-case pattern.
+
+ * lib/wordfnmatch.c (word_fnmatch): Use isalpha and FNM_CASEFOLD rather
+ than manually lower-casing string or expecting pattern to have already
+ been lower-cased.
+ * NEWS: Document this.
+
+2019-02-05 Colin Watson <cjwatson@debian.org>
+
+ Simplify case-insensitive comparisons in whatis
+
+ We can just use strcasecmp and similar functions rather than
+ lower-casing comparands manually.
+
+ In some corner cases this may result in matches that would not
+ previously have been returned (e.g. "whatis -w" with a non-lower-case
+ pattern).
+
+ * src/whatis.c (parse_name): Use strcasecmp and FNM_CASEFOLD rather than
+ manually lower-casing dbname or expecting pages to have already been
+ lower-cased.
+ (match): Use strcasestr and isalpha rather than manually lower-casing
+ whatis or expecting page to have already been lower-cased.
+ (parse_whatis): Remove lowpages parameter; pass pages directly to match
+ instead.
+ (do_apropos): Remove lowpages; parse_name and parse_whatis no longer
+ need it.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Import Gnulib's strcase module
+
+ We're already using strcasecmp and strncasecmp.
+
+ * bootstrap.conf (gnulib_modules): Add strcase.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Add missing #include
+
+ * src/straycats.c: Include <stdbool.h>.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Use bool for boolean command-line options
+
+ * include/manconfig.h.in (debug_level): Change type to bool. Update all
+ definitions and users.
+ * lib/encodings.c (get_roff_encoding): Change type of "found" to bool.
+ * libdb/db_lookup.c (dblookup_all, dblookup_exact): Change "match_case"
+ parameter type to bool. Update all callers.
+ (dblookup_pattern): Change "match_case", "pattern_regex", and
+ "try_descriptions" parameter types to bool. Update all callers.
+ * libdb/db_storage.h (dblookup_all, dblookup_exact, dblookup_pattern):
+ Update prototypes.
+
+ * src/descriptions_store.c (store_descriptions): Change types of
+ "found_real_page" and "found_external" to bool.
+ * src/lexgrog_test.c (main): Change types of "some_failed" and "found"
+ to bool.
+ * src/man.c (parse_opt): Change types of "apropos" and "whatis" to bool.
+ (add_roff_line_length): Change "save_cat_p" parameter type to bool *.
+ Update all callers.
+ (make_browser): Change "found_percent_s" type to bool.
+ (display): Change "display_to_stdout" type to bool.
+ (try_db): Change "found_stale" type to bool.
+ (local_man_loop): Change "local_mf" type to bool.
+ (main): Change "found_subpage" type to bool.
+ * src/manp.c (read_config_file): Change "optional" parameter type to
+ bool. Update all callers.
+ * src/manp.h (read_config_file): Update prototype.
+
+ * src/check_mandirs.c (opt_test, force_rescan): Change types to bool.
+ Update all users.
+ * src/globbing_test.c (match_case, regex_opt, wildcard): Likewise.
+ * src/lexgrog_test.c (parse_man, parse_cat, show_whatis, show_filters):
+ Likewise.
+ * src/man.c (disable_cache, troff, global_apropos, print_where,
+ print_where_cat, catman, local_man_file, findall, update, match_case,
+ regex_opt, wildcard, names_only, no_hyphenation, no_justification,
+ subpages, ascii, save_cat, ditroff, htmlout): Likewise.
+ * src/mandb.c (opt_test, force_rescan, check_for_strays, purge, user,
+ create): Likewise.
+ * src/manp.c (disable_cache): Likewise.
+ * src/manpath.c (cat, global): Likewise.
+ * src/whatis.c (am_apropos, regex_opt, exact, wildcard, require_all,
+ long_output): Likewise.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port roff_warnings to gl_list
+
+ * src/man.c (struct string_llist): Remove.
+ (parse_opt, make_roff_command): Convert roff_warnings to gl_list.
+ (main): Initialise roff_warnings.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port parse_descriptions to gl_list
+
+ * src/descriptions.c (free_descriptions): Rename to ...
+ (page_description_free): ... this. Adjust for gl_list's expected
+ interface.
+ (parse_descriptions): Convert to gl_list. Return a zero-length list if
+ whatis is NULL, where previously we returned NULL.
+ * src/descriptions_store.c (store_descriptions): Convert descs to
+ gl_list.
+ * src/descriptions.h (struct page_description): Remove next member.
+ (parse_descriptions, store_descriptions): Update prototypes.
+ (free_descriptions): Remove prototype.
+ * src/lexgrog_test.c (main): Convert descs to gl_list.
+ * src/straycats.c (check_for_stray): Likewise. Remove conditional,
+ since parse_descriptions now never returns NULL.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Improve sandbox_free
+
+ * lib/sandbox.c (sandbox_free): Free sandbox->permissive_ctx too.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Free seccomp sandbox before normal exit
+
+ This makes valgrind slightly happier.
+
+ * src/lexgrog_test.c (main): Call seccomp_free before exiting.
+ * src/man.c (main): Likewise.
+ * src/manconv_main.c (main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (main): Likewise.
+ * src/zsoelim_main.c (main): Likewise.
+
+2019-02-04 Colin Watson <cjwatson@debian.org>
+
+ Port dblookup to gl_list
+
+ * libdb/db_lookup.c (free_mandata_struct): Only free a single structure,
+ rather than following list pointers.
+ (split_content): Stop initialising pinfo->next.
+ (dblookup, dblookup_pattern): Convert to gl_list. Return a zero-length
+ list to indicate no matches, where previously we returned NULL.
+ (dblookup_exact): Adjust for changes in dblookup. This function
+ continues to return a single element rather than a list, since that's
+ all that its callers need.
+ * libdb/db_storage.h (struct mandata): Remove next member.
+ (dblookup_all, dblookup_pattern): Update prototypes.
+ * src/man.c (db_map_value_free): New function.
+ (try_db): Convert dblookup_pattern/dblookup_all cache to store gl_lists
+ or NULL. NULL now means a database open failure and a zero-length list
+ means no matches in an existing database, rather than vice versa.
+ * src/whatis.c (do_whatis_section): Convert to gl_list.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Eliminate #ifdef in straycats.c
+
+ * src/straycats.c (check_for_stray): Replace hand-rolled
+ FAVOUR_STRAYCATS conditional with an equivalent compare_ids call.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Add helper functions for common container cases
+
+ * lib/glcontainers.c (new_string_list, new_string_map, new_string_set):
+ New functions.
+ * lib/glcontainers.h (new_string_list, new_string_map, new_string_set):
+ Add prototypes.
+
+ * lib/orderfiles.c (order_files): Use new_string_list.
+ * src/check_mandirs.c (test_manfile, add_dir_entries): Likewise.
+ * src/globbing.c (look_for_file, expand_path): Likewise.
+ * src/man.c (get_section_list): Likewise.
+ * src/manp.c (get_scetions, get_manpath_from_path, create_pathlist):
+ Likewise.
+ * src/straycats.c (check_for_stray): Likewise.
+
+ * libdb/db_gdbm.c (man_gdbm_firstkey): Use new_string_map.
+ * src/check_mandirs.c (test_manfile): Likewise.
+ * src/globbing.c (update_directory_cache): Likewise.
+ * src/man.c (try_db): Likewise.
+ * src/mandb.c (main): Likewise.
+
+ * libdb/db_btree.c (btree_findkey): Use new_string_set.
+ * src/whatis.c (main): Likewise.
+
+2019-02-03 Colin Watson <cjwatson@debian.org>
+
+ Replace hashtable with Gnulib containers
+
+ Since we're using Gnulib's container types anyway, we might as well
+ reduce the maintenance burden of local code, especially since the result
+ tends to be more concise.
+
+ * bootstrap.conf (gnulib_modules): Add hash-map, hash-set, xmap, and
+ xset.
+ * lib/glcontainers.h (GL_MAP_FOREACH_START, GL_MAP_FOREACH_END): New
+ macros.
+
+ * lib/orderfiles.c (compare_physical_offsets, order_files): Convert
+ physical_offsets from a hashtable to a gl_map.
+ * libdb/db_btree.c (loop_check_hash): Rename to ...
+ (loop_check): ... this.
+ (btree_findkey): Convert loop_check from a hashtable to a gl_set.
+ * libdb/db_gdbm.c (parent_sortkey_hash): Rename to ...
+ (parent_keys: ... this.
+ (struct sortkey, parent_sortkey_hashtable_free): Remove.
+ (sortkey_hashtable_free): Rename to ...
+ (datum_free): ... this. Adjust for gl_list's expected interface.
+ (sortkey_compare): Rename to ...
+ (datum_compare): ... this. Adjust for gl_list's expected interface.
+ (datum_equals, datum_hash): New functions.
+ (man_gdbm_firstkey, man_gdbm_nextkey, man_gdbm_close): Convert
+ parent_keys from a hashtable to a gl_map, and convert its values from
+ hashtables with manual linking to gl_lists using a hash for fast lookup
+ by key.
+ * src/check_mandirs.c (whatis_hash): Rename to ...
+ (whatis_map): ... this.
+ (struct whatis_hashent): Rename to ...
+ (struct whatis): ... this.
+ (whatis_hashtable_free): Rename to ...
+ (whatis_free): ... this. Adjust for gl_map's expected interface.
+ (test_manfile): Convert whatis_map from a hashtable to a gl_map.
+ * src/globbing.c (struct dirent_hashent): Rename to ...
+ (struct dirent_names): ... this.
+ (dirent_hashtable_free): Rename to ...
+ (dirent_names_free): ... this. Adjust for gl_map's expected interface.
+ (dirent_hash): Rename to ...
+ (dirent_map): ... this.
+ (update_directory_cache): Convert dirent_map from a hashtable to a
+ gl_map.
+ * src/man.c (db_hash): Rename to ...
+ (db_map): ... this.
+ (db_hashtable_free): Remove.
+ (try_db, main): Convert db_map from a hashtable to a gl_map.
+ * src/mandb.c (process_manpath, tried_catdirs_free, purge_catdir,
+ purge_catdirs, main): Convert tried_catdirs from a hashtable to a
+ gl_map.
+ * src/whatis.c (display, main): Convert display_seen from a hashtable to
+ a gl_set.
+
+ * lib/Makefile.am (libman_la_SOURCES): Remove hashtable.c and
+ hashtable.h.
+ * lib/README: Remove hashtable.*.
+ * lib/hashtable.c, lib/hashtable.h: Remove.
+
+2019-02-01 Colin Watson <cjwatson@debian.org>
+
+ Port list_extensions to gl_list
+
+ * libdb/db_lookup.c (name_ext_equals): New function.
+ (list_extensions, dblookup): Convert to gl_list.
+ * libdb/db_storage.h (struct name_ext): New structure.
+ (list_extensions): Update prototype.
+ * libdb/db_delete.c (dbdelete): Convert to gl_list.
+
+2019-01-31 Colin Watson <cjwatson@debian.org>
+
+ Port ult_src tracing to gl_list
+
+ * src/ult_src.c (ult_trace, free_ult_trace): Remove.
+ (ult_src): Convert trace handling to gl_list.
+ * src/ult_src.h (struct ult_trace): Remove.
+ (ult_src): Update prototype.
+ (free_ult_trace): Remove.
+ * src/descriptions_store.c (store_descriptions): Convert to gl_list.
+ * src/descriptions.h (store_descriptions): Update prototype.
+ * src/check_mandirs.c (struct whatis_hashent): Change type of trace to
+ gl_list_t.
+ (whatis_hashtable_free, test_manfile): Convert to gl_list.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Use bool in more places in whatis
+
+ * src/whatis.c (use_grep, do_whatis, do_apropos): Change "found"
+ parameter type to bool *. Update all callers.
+ (any_set, all_set): Change "found_here" parameter type to bool *.
+ Update all callers.
+ (parse_name, parse_whatis): Change "found" and "found_here" parameter
+ types to bool *. Update all callers.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Port get_sections to gl_list
+
+ * src/manp.c (get_sections): Convert to gl_list.
+ * src/manp.h (get_sections): Update prototype.
+ * src/man.c (is_section, compare_candidates, do_global_apropos, man,
+ get_section_list): Convert to gl_list.
+ (compare_candidates): Sort sections missing from section_list to the
+ end.
+ (main): Free section_list.
+
+2019-01-30 Colin Watson <cjwatson@debian.org>
+
+ Use HTTPS URL for libpipeline
+
+ * NEWS, docs/INSTALL.quick: Update libpipeline URL to
+ https://nongnu.org/libpipeline/.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Port expand_path to gl_list
+
+ * src/globbing.c (expand_path): Convert to gl_list.
+ * src/globbing.h (expand_path): Update prototype.
+ * src/manp.c (def_path, add_dir_to_list, add_dir_to_path_list): Convert
+ to gl_list.
+ * src/ult_src.c (find_include): Likewise.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Fix failure to link libman using the Darwin linker
+
+ Thanks to George Plymale II and John Gardner.
+
+ * configure.ac: Add "-Wl,-flat_namespace,-undefined,suppress" to CFLAGS
+ on Darwin.
+ * NEWS: Document this.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Port order_files and look_for_file to gl_list
+
+ This gets rid of some particularly awful allocation spaghetti in
+ src/globbing.c.
+
+ * bootstrap.conf (gnulib_modules): Add rbtree-list.
+ * lib/orderfiles.c (compare_physical_offsets): Expect arguments to be
+ const char * rather than const char **.
+ (order_files): Convert to taking a gl_list_t as an input/output argument
+ rather than an array. In the HAVE_LINUX_FIEMAP_H case, we produce a new
+ sorted list.
+ * lib/orderfiles.h (order_files): Update prototype.
+ * src/globbing.c (clear_glob): Remove.
+ (match_in_directory): Convert to gl_list. Remove inter-call allocation
+ and cleanup machinery.
+ (look_for_file): Convert to gl_list. Remove glob_t cleanup machinery;
+ the caller is now responsible for freeing the returned list.
+ * src/globbing.h (look_for_file): Update prototype.
+
+ * src/check_mandirs.c (add_dir_entries, count_glob_matches,
+ purge_normal): Convert to gl_list.
+ * src/straycats.c (check_for_stray): Likewise.
+
+ * src/check_mandirs.c (purge_whatis, purge_missing): Convert to gl_list.
+ Free list returned by look_for_file.
+ * src/globbing_test.c (main): Likewise.
+ * src/man.c (try_section, do_global_apropos_section): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+2019-01-29 Colin Watson <cjwatson@debian.org>
+
+ Default to --without-systemd* on non-Linux systems
+
+ systemd is unapologetically Linux-specific, so let's not require
+ non-Linux packages to explicitly turn this off.
+
+ * m4/man-arg-systemdsystemunitdir (MAN_ARG_SYSTEMDSYSTEMUNITDIR):
+ Default to with_systemdsystemunitdir=no on non-Linux systems.
+ * m4/man-arg-systemdtmpfilesdir (MAN_ARG_SYSTEMDTMPFILESDIR): Default to
+ with_systemdtmpfilesdir=no on non-Linux systems.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Add --quiet to systemd mandb invocation
+
+ Fixes Debian bug #920628.
+
+ * init/systemd/man-db.service.in (ExecStart): Run mandb with --quiet.
+ * NEWS: Document this.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Use macros for common cases of list iteration
+
+ * lib/glcontainers.h (GL_LIST_FOREACH_START, GL_LIST_FOREACH_END): New
+ macros.
+ * src/catman.c (main): Replace manual list iteration with equivalent
+ macros.
+ * src/man.c (do_global_apropos, locate_page_in_manpath): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/manp.c (get_config, print_list, get_sections, def_path,
+ get_manpath_from_path, create_pathlist, get_mandb_manpath, get_catpath,
+ is_global_mandir): Likewise.
+ * src/whatis.c (search): Likewise.
+ * src/zsoelim.l (zsoelim_open_file): Likewise.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Rename gl-container-helpers to glcontainers
+
+ This is less annoying to type.
+
+ * lib/gl-container-helpers.c: Rename to ...
+ * lib/glcontainers.c: ... this.
+ * lib/gl-container-helpers.h: Rename to ...
+ * lib/glcontainers.h: ... this.
+ * lib/Makefile.am (libman_la_SOURCES): Replace gl-container-helpers.c
+ and gl-container-helpers.h with glcontainers.c and glcontainers.h.
+ * src/manp.c: Update include.
+
+2019-01-27 Colin Watson <cjwatson@debian.org>
+
+ Move Gnulib container helpers into common code
+
+ * src/manp.c (string_equals, string_hash, string_free): Move to ...
+ * lib/gl-container-helpers.c (string_equals, string_hash, plain_free):
+ ... here (new file).
+ * lib/gl-container-helpers.h: New file.
+ * lib/Makefile.am (libman_la_SOURCES): Add gl-container-helpers.c and
+ gl-container-helpers.h.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Turn config flags into an enum
+
+ * src/manp.c (enum config_flag): New enumeration.
+ (struct config_item, def_path, add_config, get_config, get_sections,
+ def_path): Use enum config_flag.
+ (describe_flag): New function.
+ (print_list): Describe flags rather than printing their integer value.
+ (add_def): Remove flag parameter; expect caller to pass the correct
+ config_def value instead. Make thing and config_def const.
+ (add_mandb_map): Remove flag parameter; expect caller to pass the
+ correct catdir value instead.
+ (add_to_dirlist): Update calls to add_mandb_map and add_def.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Port internal configuration storage to gl_list
+
+ * bootstrap.conf (gnulib_modules): Add array-list.
+ * src/manp.c (struct list): Remove.
+ (struct config_item): New structure.
+ (config_item_free): New function.
+ (add_to_list): Rename to ...
+ (add_config): ... this. Convert to gl_list. Update all callers.
+ (get_from_list): Rename to ...
+ (get_config): ... this. Convert to gl_list. Update all callers.
+ (iterate_over_list): Remove.
+ (print_list, get_sections, free_config_file, def_path,
+ get_manpath_from_path, get_mandb_manpath, get_catpath,
+ is_global_mandir): Port config list handling to gl_list.
+ (add_to_dirlist): Rename config parameter to config_file.
+ (read_config_file): Create empty config list. Rename previous local
+ config variable to config_file.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Use Gnulib's lchown function
+
+ Also remove lib/xchown.*; with only one call site, they don't pull their
+ weight over equivalent inline code.
+
+ * bootstrap.conf (gnulib_modules): Add lchown.
+ * configure.ac (AC_CHECK_FUNCS): Remove check for lchown.
+ * lib/Makefile.am (libman_la_SOURCES): Remove xchown.c and xchown.h.
+ * src/check_mandirs.c (chown_if_possible): Always use lchown rather than
+ chown, and inline the error check.
+
+ * po/POTFILES.in: Remove lib/xchown.c.
+ * po/man-db.pot, po/*.po: Update.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Simplify includes using Gnulib's fcntl module
+
+ * bootstrap.conf (gnulib_modules): Add fcntl.
+ * configure.ac (AC_CHECK_HEADERS): Remove check for fcntl.h.
+ * libdb/db_btree.c, libdb/db_ndbm.c, libdb/mydbm.h, src/man.c: Include
+ <fcntl.h> unconditionally.
+ * src/man.c: Remove conditional definitions of R_OK and X_OK; Gnulib's
+ <unistd.h> handles these.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Replace check_standard_fds with Gnulib's xstdopen
+
+ * bootstrap.conf (gnulib_modules): Add xstdopen.
+ * src/man.c (check_standard_fds): Remove.
+ (main): Call xstdopen rather than check_standard_fds.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Update to Gnulib 20190124
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Use bool type where appropriate
+
+ Now that we're using <stdbool.h> anyway due to gl_list (with Gnulib
+ providing <stdbool.h> if necessary), it makes sense to use it for our
+ own functions that have essentially boolean semantics.
+
+ * lib/encodings.c (compatible_encodings, is_roff_device): Return bool.
+ * lib/pathsearch.c (pathsearch, pathsearch_executable,
+ directory_on_path): Likewise.
+ * lib/sandbox.c (search_ld_preload, can_load_seccomp): Likewise.
+ * lib/security.c (running_setuid): Likewise.
+ * lib/wordfnmatch.c (word_fnmatch): Likewise. Update all callers.
+ * src/check_mandirs.c (sanity_check_db): Likewise.
+ * src/man.c (duplicate_candidates): Likewise.
+ * src/manp.c (is_global_mandir): Likewise. Update all callers.
+ * src/whatis.c (suitable_manpath, match): Likewise.
+ (any_set, all_set): Likewise. Update all callers.
+
+ * lib/encodings.h (is_roff_device): Update prototype.
+ * lib/pathsearch.h (pathsearch_executable, directory_on_path): Likewise.
+ * lib/security.h (running_setuid): Likewise.
+ * lib/wordfnmatch.h (word_fnmatch): Likewise.
+ * src/manp.h (is_global_mandir): Likewise.
+
+ * src/mandb.c (mandb, process_manpath): Change global_manpath parameter
+ type to bool.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Note that some C99 runtime facilities may be used
+
+ * docs/HACKING (Facilities and portability): Note that C99 runtime
+ facilities that are provided by Gnulib are OK.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Remove arbitrary limit on manpath size
+
+ Fixes Savannah bug #50324.
+
+ * bootstrap.conf (gnulib_modules): Add hash-pjw-bare, linkedhash-list,
+ stdbool, and xlist.
+ * include/manconfig.h.in (MAXDIRS): Remove.
+
+ * src/manp.c (tmplist): Remove.
+ (string_equals, string_hash, string_free): New functions.
+ (gripe_overlong_list): Remove.
+ (insert_override_dir, get_manpath_from_path, add_expanded_dir_to_list,
+ add_dir_to_list, add_man_subdirs, add_dir_to_path_list, create_pathlist,
+ free_pathlist): Port manpath list handling to gl_list_t.
+ * src/catman.c (main): Likewise.
+ * src/man.c (do_global_apropos, local_man_loop, locate_page_in_manpath,
+ main): Likewise.
+ * src/mandb.c (main): Likewise.
+ * src/whatis.c (suitable_manpath, search, main): Likewise.
+ * src/zsoelim.l (<<EOF>>, zsoelim_parse_file, zsoelim_open_file,
+ zsoelim_stdin, zsoelim_stdin_data_new): Likewise.
+ * src/zsoelim_main.c (main): Likewise.
+
+ * src/manp.h (create_pathlist, free_pathlist): Update prototypes.
+ * src/zsoelim.h (zsoelim_open_file, zsoelim_parse_file,
+ zsoelim_stdin_data_new): Likewise.
+
+ * NEWS: Document this.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ * NEWS: Document previous commit.
+
+2019-01-26 Colin Watson <cjwatson@debian.org>
+
+ Automatically add more man directories to manpath
+
+ Will Starms reported that, if both ../man and ../share/man directories
+ (for example) exist relative to a directory on $PATH, then only the
+ first was considered.
+
+ * src/manp.c (has_mandir): Rename to ...
+ (add_man_subdirs): ... this. Insert directories as they are found
+ rather than returning them, and continue even if some have been found.
+ (get_manpath_from_path): Update call to add_man_subdirs.
+
+2019-01-08 Colin Watson <cjwatson@debian.org>
+
+ Recommend a distribution-independent bug tracker
+
+ * README: Link to https://savannah.nongnu.org/bugs/?group=man-db for bug
+ reporting.
+
2019-01-05 Colin Watson <cjwatson@debian.org>
* Version: 2.8.5.
diff --git a/Makefile.in b/Makefile.in
index d86681f9..ccc66959 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -120,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -164,7 +165,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/NEWS b/NEWS
index 411983bd..4306aabb 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,38 @@
+man-db 2.8.6 (3 August 2019)
+============================
+
+Major changes since man-db 2.8.5:
+
+ Fixes:
+ ------
+
+ * If more than one of "../man", "man", "../share/man", and
+ "share/man" exist relative to a directory on $PATH, then all of
+ them are now added to the automatically-determined manpath;
+ previously, only the first was considered.
+
+ * Remove arbitrary limit on manpath size.
+
+ * The systemd database maintenance service now runs mandb with the
+ --quiet option, avoiding excess log messages.
+
+ * Default to --without-systemdsystemunitdir and
+ --without-systemdtmpfilesdir on non-Linux systems.
+
+ * Fix failure to link libman using the Darwin linker.
+
+ * "apropos -w" now works when given a non-lower-case pattern.
+
+ Improvements:
+ -------------
+
+ * Convert most list and hash table code to Gnulib's container types:
+ these are more flexible and normally more concise than home-grown
+ equivalents.
+
+ * There is a new configure option --disable-manual, which causes the
+ man-db manual not to be built or installed.
+
man-db 2.8.5 (5 January 2019)
=============================
@@ -645,8 +680,8 @@ Major changes since man-db 2.5.9:
* As promised in the release notes for man-db 2.5.8, man-db no
longer ships its own copy of libpipeline
- (http://libpipeline.nongnu.org/). You must build and install that
- library separately.
+ (https://nongnu.org/libpipeline/). You must build and install
+ that library separately.
* Search the full manpath when expanding .so directives in manual
pages. As part of this, '.so name.1' should now work as well as
@@ -735,7 +770,7 @@ Major changes since man-db 2.5.7:
context. Thanks to the Debian Perl maintainers for the idea.
* Allow building with an external libpipeline
- (http://libpipeline.nongnu.org/), which has been split out from
+ (https://nongnu.org/libpipeline/), which has been split out from
man-db. This is a transitional measure: a future version of
man-db will stop shipping its own copy of libpipeline.
diff --git a/README b/README
index c3af25bc..e507b952 100644
--- a/README
+++ b/README
@@ -133,6 +133,10 @@ used.
manual files when a manual page is read. This flag suppresses this
behaviour.
+--disable-manual
+ Don't build or install the man-db manual. This may be useful when
+ cross-compiling, or to reduce the installation size.
+
INSTALL
=======
@@ -280,7 +284,7 @@ Contacting the maintainer
=========================
The current maintainer of man-db is Colin Watson <cjwatson@debian.org>.
-Please feel free to contact me with any queries or problems you may have. If
-you are using the Debian GNU/Linux or GNU/Hurd system, I welcome bug reports
-against the man-db package by way of the Debian bug tracking system
-(https://bugs.debian.org/).
+Please feel free to contact me with any queries or problems you may have.
+You can report bugs here:
+
+ https://savannah.nongnu.org/bugs/?group=man-db
diff --git a/aclocal.m4 b/aclocal.m4
index b44cb668..770f20b4 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1513,6 +1513,7 @@ m4_include([m4/man-arg-config-file.m4])
m4_include([m4/man-arg-db.m4])
m4_include([m4/man-arg-device.m4])
m4_include([m4/man-arg-mandirs.m4])
+m4_include([m4/man-arg-manual.m4])
m4_include([m4/man-arg-override-dir.m4])
m4_include([m4/man-arg-sections.m4])
m4_include([m4/man-arg-setuid.m4])
@@ -1539,6 +1540,7 @@ m4_include([gl/m4/btowc.m4])
m4_include([gl/m4/builtin-expect.m4])
m4_include([gl/m4/canonicalize.m4])
m4_include([gl/m4/chdir-long.m4])
+m4_include([gl/m4/chown.m4])
m4_include([gl/m4/clock_time.m4])
m4_include([gl/m4/close.m4])
m4_include([gl/m4/closedir.m4])
@@ -1601,6 +1603,7 @@ m4_include([gl/m4/inttypes_h.m4])
m4_include([gl/m4/ioctl.m4])
m4_include([gl/m4/langinfo_h.m4])
m4_include([gl/m4/largefile.m4])
+m4_include([gl/m4/lchown.m4])
m4_include([gl/m4/lib-ignore.m4])
m4_include([gl/m4/lib-ld.m4])
m4_include([gl/m4/lib-link.m4])
diff --git a/bootstrap.conf b/bootstrap.conf
index 4e6c149f..daa5171d 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -16,16 +16,18 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
-GNULIB_REVISION=d271f868a8df9bbec29049d01e056481b7a1a263
+GNULIB_REVISION=34881aff4043847f2640d90cf9aa325cc3ad08d6
# gnulib modules used by this package.
gnulib_modules="
argp
+ array-list
canonicalize
closedir
dirent
dirname
error
+ fcntl
flock
fnmatch-gnu
fstat
@@ -36,9 +38,14 @@ gnulib_modules="
gitlog-to-changelog
glob
gnupload
+ hash-map
+ hash-pjw-bare
+ hash-set
idpriv-drop
idpriv-droptemp
+ lchown
lib-ignore
+ linkedhash-list
localcharset
lock
memmem
@@ -50,6 +57,7 @@ gnulib_modules="
openat
opendir
progname
+ rbtree-list
regex
rename
setenv
@@ -57,6 +65,8 @@ gnulib_modules="
signal
sigprocmask
stat-time
+ stdbool
+ strcase
strcasestr
strerror
strsep
@@ -66,6 +76,10 @@ gnulib_modules="
warnings
xalloc
xgetcwd
+ xlist
+ xmap
+ xset
+ xstdopen
xstrndup
xvasprintf
"
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 8e2a58b8..a81aa505 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-01-03'
+timestamp='2019-01-15'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -385,20 +385,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- set_cc_for_build
- SUN_ARCH=sparc
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
- if (echo '#ifdef __sparcv9'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH=sparcv9
- fi
- fi
- echo "$SUN_ARCH"-sun-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux"$UNAME_RELEASE"
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 1fc4cde1..3b4c7624 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2019 Free Software Foundation, Inc.
-timestamp='2019-01-04'
+timestamp='2019-01-05'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -1185,8 +1185,8 @@ case $cpu-$vendor in
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle \
- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
| mips | mipsbe | mipseb | mipsel | mipsle \
@@ -1218,11 +1218,12 @@ case $cpu-$vendor in
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
- | none | np1 | ns16k | ns32k \
+ | none | np1 | ns16k | ns32k | nvptx \
| open8 \
| or1k* \
| or32 \
| orion \
+ | picochip \
| pdp10 | pdp11 | pj | pjl | pn | power \
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
@@ -1230,7 +1231,8 @@ case $cpu-$vendor in
| riscv | riscv32 | riscv64 \
| rl78 | romp | rs6000 | rx \
| score \
- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
| sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
| sparclite \
@@ -1240,10 +1242,10 @@ case $cpu-$vendor in
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
| visium \
- | wasm32 \
+ | w65 | wasm32 \
| we32k \
| x86 | x86_64 | xc16x | xgate | xps100 \
| xstormy16 | xtensa* \
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
index 66a832e0..48d532bc 100644
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
@@ -3,7 +3,8 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2018-12-28.17}
+\def\texinfoversion{2019-01-03-15}
+
%
% Copyright 1985, 1986, 1988, 1990-2018 Free Software Foundation, Inc.
%
@@ -5043,8 +5044,8 @@ end
\commondummyword\xref
}
-% For testing: output @{ and @} in index sort strings as \{ and \}.
-\newif\ifusebracesinindexes
+% This does nothing, but for a time it was recommended to use
+% \usebracesinindexestrue to be able to use braces in index entries.
\let\indexlbrace\relax
\let\indexrbrace\relax
diff --git a/config.h.in b/config.h.in
index 004cb178..33caa9d3 100644
--- a/config.h.in
+++ b/config.h.in
@@ -24,6 +24,19 @@
/* Define if you have, and want to use, the Berkeley database library. */
#undef BTREE
+/* Define to 1 if chown fails to change ctime when at least one argument was
+ not -1. */
+#undef CHOWN_CHANGE_TIME_BUG
+
+/* Define if chown is not POSIX compliant regarding IDs of -1. */
+#undef CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE
+
+/* Define if chown modifies symlinks. */
+#undef CHOWN_MODIFIES_SYMLINK
+
+/* Define to 1 if chown mishandles trailing slash. */
+#undef CHOWN_TRAILING_SLASH_BUG
+
/* Define if you have compressors and want to support compressed cat files. */
#undef COMP_CAT
@@ -190,6 +203,9 @@
/* Define to 1 when the gnulib module chdir should be tested. */
#undef GNULIB_TEST_CHDIR
+/* Define to 1 when the gnulib module chown should be tested. */
+#undef GNULIB_TEST_CHOWN
+
/* Define to 1 when the gnulib module cloexec should be tested. */
#undef GNULIB_TEST_CLOEXEC
@@ -256,6 +272,9 @@
/* Define to 1 when the gnulib module ioctl should be tested. */
#undef GNULIB_TEST_IOCTL
+/* Define to 1 when the gnulib module lchown should be tested. */
+#undef GNULIB_TEST_LCHOWN
+
/* Define to 1 when the gnulib module localeconv should be tested. */
#undef GNULIB_TEST_LOCALECONV
@@ -434,6 +453,9 @@
the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+/* Define to 1 if you have the `chown' function. */
+#undef HAVE_CHOWN
+
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
@@ -653,12 +675,12 @@
/* Define to 1 if you have the `fchdir' function. */
#undef HAVE_FCHDIR
+/* Define to 1 if you have the `fchown' function. */
+#undef HAVE_FCHOWN
+
/* Define to 1 if you have the `fcntl' function. */
#undef HAVE_FCNTL
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
/* Define to 1 if you have the `fdopendir' function. */
#undef HAVE_FDOPENDIR
@@ -802,6 +824,9 @@
/* Define to 1 if you have the <langinfo.h> header file. */
#undef HAVE_LANGINFO_H
+/* Define to 1 if you have the `lchmod' function. */
+#undef HAVE_LCHMOD
+
/* Define to 1 if you have the `lchown' function. */
#undef HAVE_LCHOWN
diff --git a/configure b/configure
index a4f17958..004c1293 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for man-db 2.8.5.
+# Generated by GNU Autoconf 2.69 for man-db 2.8.6.
#
# Report bugs to <cjwatson@debian.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='man-db'
PACKAGE_TARNAME='man-db'
-PACKAGE_VERSION='2.8.5'
-PACKAGE_STRING='man-db 2.8.5'
+PACKAGE_VERSION='2.8.6'
+PACKAGE_STRING='man-db 2.8.6'
PACKAGE_BUGREPORT='cjwatson@debian.org'
PACKAGE_URL=''
@@ -1628,6 +1628,8 @@ RANLIB
ARFLAGS
ac_ct_AR
AR
+BUILD_MANUAL_FALSE
+BUILD_MANUAL_TRUE
MANDIR_LAYOUT
INSTALL_SYSTEMD_TIMER_FALSE
INSTALL_SYSTEMD_TIMER_TRUE
@@ -1765,6 +1767,7 @@ with_override_dir
with_systemdtmpfilesdir
with_systemdsystemunitdir
enable_mandirs
+enable_manual
enable_largefile
enable_threads
enable_static
@@ -2367,7 +2370,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures man-db 2.8.5 to adapt to many kinds of systems.
+\`configure' configures man-db 2.8.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2438,7 +2441,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of man-db 2.8.5:";;
+ short | recursive ) echo "Configuration of man-db 2.8.6:";;
esac
cat <<\_ACEOF
@@ -2469,6 +2472,7 @@ Optional Features:
--disable-cats don't allow man to create/update cat files
--enable-mandirs=OS select manual page hierarchy organization (GNU,
HPUX, IRIX, Solaris, BSD)
+ --disable-manual don't build or install the man-db manual
--disable-largefile omit support for large files
--enable-threads={posix|solaris|pth|windows}
specify multithreading API
@@ -2637,7 +2641,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-man-db configure 2.8.5
+man-db configure 2.8.6
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3346,7 +3350,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by man-db $as_me 2.8.5, which was
+It was created by man-db $as_me 2.8.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3637,6 +3641,8 @@ as_fn_append ac_func_list " getcwd"
as_fn_append ac_func_list " readlink"
as_fn_append ac_header_list " sys/param.h"
as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_func_list " chown"
+as_fn_append ac_func_list " fchown"
as_fn_append ac_func_list " _set_invalid_parameter_handler"
as_fn_append ac_header_list " sys/socket.h"
as_fn_append ac_func_list " fchdir"
@@ -3686,6 +3692,7 @@ as_fn_append ac_func_list " setresgid"
as_fn_append ac_func_list " setregid"
as_fn_append ac_func_list " setegid"
as_fn_append ac_header_list " langinfo.h"
+as_fn_append ac_func_list " lchmod"
as_fn_append ac_header_list " limits.h"
as_fn_append ac_header_list " xlocale.h"
as_fn_append ac_func_list " lstat"
@@ -4310,7 +4317,7 @@ fi
# Define the identity of the package.
PACKAGE='man-db'
- VERSION='2.8.5'
+ VERSION='2.8.6'
cat >>confdefs.h <<_ACEOF
@@ -6594,8 +6601,8 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
# Define below date and version information to be put into man pages etc.
-date=2019-01-05
-roff_version=`echo 2.8.5 | sed 's/-/\\-/g'`
+date=2019-08-03
+roff_version=`echo 2.8.6 | sed 's/-/\\-/g'`
# Explicitly check for pkg-config early on, since otherwise the conditional
# calls in MAN_ARG_SYSTEMDTMPFILESDIR and MAN_ARG_SYSTEMDSYSTEMUNITDIR are
@@ -6956,12 +6963,15 @@ fi
+
# Check whether --with-systemdtmpfilesdir was given.
if test "${with_systemdtmpfilesdir+set}" = set; then :
withval=$with_systemdtmpfilesdir;
else
# The default is not prefix-sensitive, since systemd's prefix is not
# necessarily the same as man-db's.
+ case $host_os in
+ linux*)
if test -n "$with_systemdtmpfilesdir"; then
pkg_cv_with_systemdtmpfilesdir="$with_systemdtmpfilesdir"
@@ -6986,6 +6996,9 @@ if test "x$with_systemdtmpfilesdir" = x""; then :
with_systemdtmpfilesdir=/usr/lib/tmpfiles.d
fi
+ ;;
+ *) with_systemdtmpfilesdir=no ;;
+ esac
fi
systemdtmpfilesdir=$with_systemdtmpfilesdir
@@ -7001,12 +7014,15 @@ fi
+
# Check whether --with-systemdsystemunitdir was given.
if test "${with_systemdsystemunitdir+set}" = set; then :
withval=$with_systemdsystemunitdir;
else
# The default is not prefix-sensitive, since systemd's prefix is not
# necessarily the same as man-db's.
+ case $host_os in
+ linux*)
if test -n "$with_systemdsystemunitdir"; then
pkg_cv_with_systemdsystemunitdir="$with_systemdsystemunitdir"
@@ -7031,6 +7047,9 @@ if test "x$with_systemdsystemunitdir" = x""; then :
with_systemdsystemunitdir=/lib/systemd/system
fi
+ ;;
+ *) with_systemdsystemunitdir=no ;;
+ esac
fi
systemdsystemunitdir=$with_systemdsystemunitdir
@@ -7085,6 +7104,23 @@ fi
+# Check whether --enable-manual was given.
+if test "${enable_manual+set}" = set; then :
+ enableval=$enable_manual; enable_manual="$enableval"
+else
+ enable_manual=yes
+fi
+
+ if test "$enable_manual" = yes; then
+ BUILD_MANUAL_TRUE=
+ BUILD_MANUAL_FALSE='#'
+else
+ BUILD_MANUAL_TRUE='#'
+ BUILD_MANUAL_FALSE=
+fi
+
+
+
# Check $PATH for the following programs and append suitable options.
@@ -7765,6 +7801,7 @@ fi
# Code from module alloca-opt:
# Code from module areadlink-with-size:
# Code from module argp:
+ # Code from module array-list:
# Code from module assure:
# Code from module at-internal:
# Code from module bitrotate:
@@ -7775,6 +7812,7 @@ fi
# Code from module canonicalize-lgpl:
# Code from module chdir:
# Code from module chdir-long:
+ # Code from module chown:
# Code from module clock-time:
# Code from module cloexec:
# Code from module close:
@@ -7831,7 +7869,10 @@ fi
# Code from module gnupload:
# Code from module hard-locale:
# Code from module hash:
+ # Code from module hash-map:
# Code from module hash-pjw:
+ # Code from module hash-pjw-bare:
+ # Code from module hash-set:
# Code from module hash-triple:
# Code from module havelib:
# Code from module idpriv-drop:
@@ -7842,9 +7883,12 @@ fi
# Code from module langinfo:
# Code from module largefile:
+ # Code from module lchown:
# Code from module lib-ignore:
# Code from module libc-config:
# Code from module limits-h:
+ # Code from module linkedhash-list:
+ # Code from module list:
# Code from module localcharset:
# Code from module locale:
# Code from module localeconv:
@@ -7854,6 +7898,7 @@ fi
# Code from module malloc-gnu:
# Code from module malloc-posix:
# Code from module malloca:
+ # Code from module map:
# Code from module mbrtowc:
# Code from module mbsinit:
# Code from module mbsrtowcs:
@@ -7883,6 +7928,7 @@ fi
# Code from module progname:
# Code from module raise:
# Code from module rawmemchr:
+ # Code from module rbtree-list:
# Code from module readdir:
# Code from module readlink:
# Code from module realloc-posix:
@@ -7895,6 +7941,7 @@ fi
# Code from module save-cwd:
# Code from module scratch_buffer:
# Code from module select:
+ # Code from module set:
# Code from module setenv:
# Code from module sigaction:
# Code from module signal:
@@ -7923,6 +7970,7 @@ fi
# Code from module stdint:
# Code from module stdio:
# Code from module stdlib:
+ # Code from module stdopen:
# Code from module strcase:
# Code from module strcasestr:
# Code from module strcasestr-simple:
@@ -7971,7 +8019,11 @@ fi
# Code from module xalloc-die:
# Code from module xalloc-oversized:
# Code from module xgetcwd:
+ # Code from module xlist:
+ # Code from module xmap:
+ # Code from module xset:
# Code from module xsize:
+ # Code from module xstdopen:
# Code from module xstrndup:
# Code from module xvasprintf:
@@ -8117,6 +8169,9 @@ case $host_os in
ultrix4.3*)
CFLAGS="$CFLAGS -YPOSIX"
;;
+ *darwin*)
+ CFLAGS="$CFLAGS -Wl,-flat_namespace,-undefined,suppress"
+ ;;
esac
if test "$GCC" = yes
then
@@ -16591,7 +16646,7 @@ else
if test `$nroff <<EOF | tr -d '\n'
\\n(.g
EOF
-` -eq 1
+` = 1
then
man_cv_prog_gnu_nroff=yes
else
@@ -19583,6 +19638,319 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then :
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "#define uid_t int" >>confdefs.h
+
+
+$as_echo "#define gid_t int" >>confdefs.h
+
+fi
+
+
+ for ac_header in unistd.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in # ((
+ # Guess yes on Linux systems.
+ linux-* | linux) ac_cv_func_chown_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) ac_cv_func_chown_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) ac_cv_func_chown_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_chown_works="guessing no" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include <fcntl.h>
+
+int
+main ()
+{
+
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_chown_works=yes
+else
+ ac_cv_func_chown_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.chown
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
+ case "$ac_cv_func_chown_works" in
+ *yes)
+
+$as_echo "#define HAVE_CHOWN 1" >>confdefs.h
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5
+$as_echo_n "checking whether chown dereferences symlinks... " >&6; }
+if ${gl_cv_func_chown_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_follows_symlink=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_follows_symlink=yes
+else
+ gl_cv_func_chown_follows_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5
+$as_echo "$gl_cv_func_chown_follows_symlink" >&6; }
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+
+$as_echo "#define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ case "$ac_cv_func_chown_works" in
+ *no)
+
+$as_echo "#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5
+$as_echo_n "checking whether chown honors trailing slash... " >&6; }
+if ${gl_cv_func_chown_slash_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.file && rm -f conftest.link
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_chown_slash_works="guessing no" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+int
+main ()
+{
+ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_slash_works=yes
+else
+ gl_cv_func_chown_slash_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5
+$as_echo "$gl_cv_func_chown_slash_works" >&6; }
+ case "$gl_cv_func_chown_slash_works" in
+ *yes) ;;
+ *)
+
+$as_echo "#define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5
+$as_echo_n "checking whether chown always updates ctime... " >&6; }
+if ${gl_cv_func_chown_ctime_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_chown_ctime_works="guessing no" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+int
+main ()
+{
+ struct stat st1, st2;
+ if (close (creat ("conftest.file", 0600))) return 1;
+ if (stat ("conftest.file", &st1)) return 2;
+ sleep (1);
+ if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3;
+ if (stat ("conftest.file", &st2)) return 4;
+ if (st2.st_ctime <= st1.st_ctime) return 5;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_ctime_works=yes
+else
+ gl_cv_func_chown_ctime_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5
+$as_echo "$gl_cv_func_chown_ctime_works" >&6; }
+ case "$gl_cv_func_chown_ctime_works" in
+ *yes) ;;
+ *)
+
+$as_echo "#define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ ;;
+ esac
+ fi
+
@@ -22554,6 +22922,8 @@ done
+
+
if test $gl_cv_have_include_next = yes; then
gl_cv_next_limits_h='<'limits.h'>'
else
@@ -23514,74 +23884,6 @@ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5
$as_echo "$gl_cv_have_weak" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --as-needed" >&5
-$as_echo_n "checking whether the linker supports --as-needed... " >&6; }
-if ${gl_cv_linker_have_as_needed+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$GCC"; then
- gl_saved_ldflags="$LDFLAGS"
- LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- gl_cv_linker_have_as_needed=yes
-else
- gl_cv_linker_have_as_needed=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$gl_saved_ldflags"
- else
- gl_cv_linker_have_as_needed=no
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_as_needed" >&5
-$as_echo "$gl_cv_linker_have_as_needed" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports --push-state" >&5
-$as_echo_n "checking whether the linker supports --push-state... " >&6; }
-if ${gl_cv_linker_have_push_state+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$GCC"; then
- gl_saved_ldflags="$LDFLAGS"
- LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- gl_cv_linker_have_push_state=yes
-else
- gl_cv_linker_have_push_state=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$gl_saved_ldflags"
- else
- gl_cv_linker_have_push_state=no
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_linker_have_push_state" >&5
-$as_echo "$gl_cv_linker_have_push_state" >&6; }
if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
# On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
# it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
@@ -23794,28 +24096,6 @@ $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h
LIBTHREAD=
LTLIBTHREAD=
- case "$LIBMULTITHREAD" in
- "") ;;
- -pthread)
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state"
- else
- LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread"
- fi
- fi
- ;;
- *)
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- ;;
- esac
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
fi
@@ -23861,14 +24141,6 @@ $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h
LIBTHREAD=
LTLIBTHREAD=
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
fi
@@ -24423,14 +24695,6 @@ $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h
LIBTHREAD=
LTLIBTHREAD=
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
else
@@ -26504,36 +26768,6 @@ done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
-$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
-if ${ac_cv_type_uid_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "uid_t" >/dev/null 2>&1; then :
- ac_cv_type_uid_t=yes
-else
- ac_cv_type_uid_t=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
-$as_echo "$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
-
-$as_echo "#define uid_t int" >>confdefs.h
-
-
-$as_echo "#define gid_t int" >>confdefs.h
-
-fi
-
@@ -28994,6 +29228,8 @@ else
netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on MSVC, no on mingw.
mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29753,6 +29989,46 @@ $as_echo "$gl_cv_have_arbitrary_file_name_length_limit" >&6; }
:
fi
+ if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
+
+ fi
+ if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
+
+ fi
+
+
+
+
+
+ GNULIB_CHOWN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CHOWN 1" >>confdefs.h
+
+
+
+
# Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
@@ -32199,12 +32475,20 @@ main ()
/* If mkdir or chdir fails, it could be that this system cannot create
any file with an absolute name longer than PATH_MAX, such as cygwin.
If so, leave fail as 0, because the current working directory can't
- be too long for getcwd if it can't even be created. For other
- errors, be pessimistic and consider that as a failure, too. */
+ be too long for getcwd if it can't even be created. On Linux with
+ the 9p file system, mkdir fails with error EINVAL when cwd_len gets
+ too long; ignore this failure because the getcwd() system call
+ produces good results whereas the gnulib substitute calls getdents64
+ which fails with error EPROTO.
+ For other errors, be pessimistic and consider that as a failure,
+ too. */
if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
{
if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
- fail = 20;
+ #ifdef __linux__
+ if (! (errno == EINVAL))
+ #endif
+ fail = 20;
break;
}
@@ -33965,6 +34249,65 @@ $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
+
+
+
+ for ac_func in lchown
+do :
+ ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
+if test "x$ac_cv_func_lchown" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LCHOWN 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ else
+ case "$gl_cv_func_chown_slash_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ case "$gl_cv_func_chown_ctime_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ fi
+
+ if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
+
+ fi
+
+
+
+
+
+ GNULIB_LCHOWN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LCHOWN 1" >>confdefs.h
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler flag to ignore unused libraries" >&5
$as_echo_n "checking for C compiler flag to ignore unused libraries... " >&6; }
if ${gl_cv_prog_c_ignore_unused_libraries+:} false; then :
@@ -42432,9 +42775,11 @@ else
if test "$cross_compiling" = yes; then :
case "$host_os" in
- # Guess yes on native Windows.
- mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
- *) gl_cv_func_snprintf_size1="guessing yes" ;;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ *) gl_cv_func_snprintf_size1="guessing yes" ;;
esac
else
@@ -42494,11 +42839,13 @@ else
case "$host_os" in
netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
- gl_cv_func_printf_positions="guessing no";;
- beos*) gl_cv_func_printf_positions="guessing no";;
- # Guess no on native Windows.
- mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
- *) gl_cv_func_printf_positions="guessing yes";;
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_positions="guessing yes";;
+ # Guess no on native Windows.
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
esac
else
@@ -43367,7 +43714,7 @@ done
-for ac_header in fcntl.h sys/file.h linux/fiemap.h
+for ac_header in sys/file.h linux/fiemap.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -43380,13 +43727,12 @@ fi
done
-for ac_func in lchown posix_fadvise
+for ac_func in posix_fadvise
do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise"
+if test "x$ac_cv_func_posix_fadvise" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_POSIX_FADVISE 1
_ACEOF
fi
@@ -46895,6 +47241,10 @@ if test -z "${INSTALL_SYSTEMD_TIMER_TRUE}" && test -z "${INSTALL_SYSTEMD_TIMER_F
as_fn_error $? "conditional \"INSTALL_SYSTEMD_TIMER\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${BUILD_MANUAL_TRUE}" && test -z "${BUILD_MANUAL_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_MANUAL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -47409,7 +47759,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by man-db $as_me 2.8.5, which was
+This file was extended by man-db $as_me 2.8.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -47475,7 +47825,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-man-db config.status 2.8.5
+man-db config.status 2.8.6
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 9051687b..aeeb5a12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
m4_pattern_forbid([^MAN_])
# Initialise and check we're in the correct directory.
-AC_INIT([man-db], [2.8.5], [cjwatson@debian.org])
+AC_INIT([man-db], [2.8.6], [cjwatson@debian.org])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.11 -Wall -Wno-override -Werror foreign dist-xz no-dist-gzip parallel-tests])
AM_MAINTAINER_MODE
@@ -16,7 +16,7 @@ AC_CONFIG_HEADER([config.h])
AC_CANONICAL_HOST
# Define below date and version information to be put into man pages etc.
-date=2019-01-05
+date=2019-08-03
AC_SUBST([date])dnl
roff_version=`echo AC_PACKAGE_VERSION | sed 's/-/\\-/g'`
AC_SUBST([roff_version])dnl
@@ -43,6 +43,7 @@ MAN_ARG_OVERRIDE_DIR
MAN_ARG_SYSTEMDTMPFILESDIR
MAN_ARG_SYSTEMDSYSTEMUNITDIR
MAN_ARG_MANDIRS
+MAN_ARG_MANUAL
# Check $PATH for the following programs and append suitable options.
AC_PROG_CC
@@ -59,6 +60,13 @@ case $host_os in
dnl environment:
CFLAGS="$CFLAGS -YPOSIX"
;;
+ *darwin*)
+ dnl libman intentionally has an undefined "sandbox" symbol
+ dnl which is supplied by each application. The Darwin
+ dnl linker refuses to do this by default, and needs some
+ dnl help.
+ CFLAGS="$CFLAGS -Wl,-flat_namespace,-undefined,suppress"
+ ;;
esac
if test "$GCC" = yes
then
@@ -339,8 +347,8 @@ then
AC_MSG_ERROR([flex is required when building from revision control])
fi
gl_INIT
-AC_CHECK_HEADERS([fcntl.h sys/file.h linux/fiemap.h])
-AC_CHECK_FUNCS([lchown posix_fadvise])
+AC_CHECK_HEADERS([sys/file.h linux/fiemap.h])
+AC_CHECK_FUNCS([posix_fadvise])
# Internationalization support.
AM_GNU_GETTEXT([external])
diff --git a/docs/HACKING b/docs/HACKING
index 359a1739..b675f9f9 100644
--- a/docs/HACKING
+++ b/docs/HACKING
@@ -78,7 +78,8 @@ argument type is correct.
You may assume C89 (e.g. no need to support K&R-style function definitions),
but please do not assume C99 (e.g. do not use nested functions or //
-comments).
+comments). However, it's OK to use C99 runtime facilities that are provided
+by Gnulib, such as <stdbool.h>.
Testing
diff --git a/docs/INSTALL.quick b/docs/INSTALL.quick
index 42869592..dd9410d2 100644
--- a/docs/INSTALL.quick
+++ b/docs/INSTALL.quick
@@ -5,7 +5,7 @@ the Quick install below.
man-db requires several external packages:
- * libpipeline >= 1.5.0 (http://libpipeline.nongnu.org/)
+ * libpipeline >= 1.5.0 (https://nongnu.org/libpipeline/)
* flex >= 2.5.30 (http://flex.sf.net/)
* a database library, one of:
GDBM (https://www.gnu.org.ua/software/gdbm/)
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 344282e0..c790b81d 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -120,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -164,7 +165,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/docs/man-db.lsm b/docs/man-db.lsm
index 9f6de844..3cd17c2d 100644
--- a/docs/man-db.lsm
+++ b/docs/man-db.lsm
@@ -1,7 +1,7 @@
Begin4
Title: man-db
-Version: 2.8.5
-Entered-date: 2019-01-05
+Version: 2.8.6
+Entered-date: 2019-08-03
Description: This package provides the man command. This utility is
the primary way of examining the on-line help files
(manual pages). Other utilities provided include the
@@ -19,7 +19,7 @@ Author: jwe@che.utexas.edu (John W Eaton)
cjwatson@debian.org (Colin Watson)
Maintained-by: cjwatson@debian.org (Colin Watson)
Primary-site: https://savannah.nongnu.org/download/man-db/
- 1.8M man-db-2.8.5.tar.xz
+ 1.8M man-db-2.8.6.tar.xz
Alternate-site: http://ftp.debian.org/debian/pool/main/m/man-db/
Platforms: Requires GNU groff 1.16.
Optionally uses GDBM or Berkeley DB (any version with 1.85
diff --git a/gl/lib/Makefile.am b/gl/lib/Makefile.am
index 6ae85232..2bb6646e 100644
--- a/gl/lib/Makefile.am
+++ b/gl/lib/Makefile.am
@@ -36,11 +36,13 @@
# --po-domain=man-db \
# --no-vc-files \
# argp \
+# array-list \
# canonicalize \
# closedir \
# dirent \
# dirname \
# error \
+# fcntl \
# flock \
# fnmatch-gnu \
# fstat \
@@ -51,9 +53,14 @@
# gitlog-to-changelog \
# glob \
# gnupload \
+# hash-map \
+# hash-pjw-bare \
+# hash-set \
# idpriv-drop \
# idpriv-droptemp \
+# lchown \
# lib-ignore \
+# linkedhash-list \
# localcharset \
# lock \
# memmem \
@@ -65,6 +72,7 @@
# openat \
# opendir \
# progname \
+# rbtree-list \
# regex \
# rename \
# setenv \
@@ -72,6 +80,8 @@
# signal \
# sigprocmask \
# stat-time \
+# stdbool \
+# strcase \
# strcasestr \
# strerror \
# strsep \
@@ -81,6 +91,10 @@
# warnings \
# xalloc \
# xgetcwd \
+# xlist \
+# xmap \
+# xset \
+# xstdopen \
# xstrndup \
# xvasprintf
@@ -178,6 +192,12 @@ libgnu_la_SOURCES += argp.h argp-ba.c argp-eexst.c argp-fmtstream.c
## end gnulib module argp
+## begin gnulib module array-list
+
+libgnu_la_SOURCES += gl_array_list.h gl_array_list.c
+
+## end gnulib module array-list
+
## begin gnulib module assure
@@ -235,6 +255,15 @@ EXTRA_libgnu_la_SOURCES += chdir-long.c
## end gnulib module chdir-long
+## begin gnulib module chown
+
+
+EXTRA_DIST += chown.c fchown-stub.c
+
+EXTRA_libgnu_la_SOURCES += chown.c fchown-stub.c
+
+## end gnulib module chown
+
## begin gnulib module cloexec
libgnu_la_SOURCES += cloexec.c
@@ -820,12 +849,30 @@ EXTRA_DIST += hash.h
## end gnulib module hash
+## begin gnulib module hash-map
+
+libgnu_la_SOURCES += gl_hash_map.h gl_hash_map.c gl_anyhash1.h gl_anyhash2.h gl_anyhash_primes.h
+
+## end gnulib module hash-map
+
## begin gnulib module hash-pjw
libgnu_la_SOURCES += hash-pjw.h hash-pjw.c
## end gnulib module hash-pjw
+## begin gnulib module hash-pjw-bare
+
+libgnu_la_SOURCES += hash-pjw-bare.h hash-pjw-bare.c
+
+## end gnulib module hash-pjw-bare
+
+## begin gnulib module hash-set
+
+libgnu_la_SOURCES += gl_hash_set.h gl_hash_set.c gl_anyhash1.h gl_anyhash2.h gl_anyhash_primes.h
+
+## end gnulib module hash-set
+
## begin gnulib module hash-triple
libgnu_la_SOURCES += hash-triple.c
@@ -907,6 +954,15 @@ EXTRA_DIST += langinfo.in.h
## end gnulib module langinfo
+## begin gnulib module lchown
+
+
+EXTRA_DIST += lchown.c
+
+EXTRA_libgnu_la_SOURCES += lchown.c
+
+## end gnulib module lchown
+
## begin gnulib module libc-config
@@ -942,6 +998,18 @@ EXTRA_DIST += limits.in.h
## end gnulib module limits-h
+## begin gnulib module linkedhash-list
+
+libgnu_la_SOURCES += gl_linkedhash_list.h gl_linkedhash_list.c gl_anyhash1.h gl_anyhash2.h gl_anyhash_primes.h gl_anylinked_list1.h gl_anylinked_list2.h
+
+## end gnulib module linkedhash-list
+
+## begin gnulib module list
+
+libgnu_la_SOURCES += gl_list.h gl_list.c
+
+## end gnulib module list
+
## begin gnulib module localcharset
libgnu_la_SOURCES += localcharset.c
@@ -1049,6 +1117,12 @@ EXTRA_DIST += malloca.h
## end gnulib module malloca
+## begin gnulib module map
+
+libgnu_la_SOURCES += gl_map.h gl_map.c
+
+## end gnulib module map
+
## begin gnulib module mbrtowc
@@ -1271,6 +1345,12 @@ EXTRA_libgnu_la_SOURCES += rawmemchr.c
## end gnulib module rawmemchr
+## begin gnulib module rbtree-list
+
+libgnu_la_SOURCES += gl_rbtree_list.h gl_rbtree_list.c gl_anyrbtree_list1.h gl_anyrbtree_list2.h gl_anytree_list1.h gl_anytree_list2.h
+
+## end gnulib module rbtree-list
+
## begin gnulib module readdir
@@ -1374,6 +1454,12 @@ EXTRA_libgnu_la_SOURCES += select.c
## end gnulib module select
+## begin gnulib module set
+
+libgnu_la_SOURCES += gl_set.h gl_set.c
+
+## end gnulib module set
+
## begin gnulib module setenv
@@ -1927,6 +2013,14 @@ EXTRA_DIST += stdlib.in.h
## end gnulib module stdlib
+## begin gnulib module stdopen
+
+libgnu_la_SOURCES += stdopen.c
+
+EXTRA_DIST += stdopen.h
+
+## end gnulib module stdopen
+
## begin gnulib module strcase
@@ -3029,12 +3123,38 @@ EXTRA_DIST += xgetcwd.h
## end gnulib module xgetcwd
+## begin gnulib module xlist
+
+libgnu_la_SOURCES += gl_xlist.h gl_xlist.c
+
+## end gnulib module xlist
+
+## begin gnulib module xmap
+
+libgnu_la_SOURCES += gl_xmap.h gl_xmap.c
+
+## end gnulib module xmap
+
+## begin gnulib module xset
+
+libgnu_la_SOURCES += gl_xset.h gl_xset.c
+
+## end gnulib module xset
+
## begin gnulib module xsize
libgnu_la_SOURCES += xsize.h xsize.c
## end gnulib module xsize
+## begin gnulib module xstdopen
+
+libgnu_la_SOURCES += xstdopen.c
+
+EXTRA_DIST += xstdopen.h
+
+## end gnulib module xstdopen
+
## begin gnulib module xstrndup
libgnu_la_SOURCES += xstrndup.h xstrndup.c
diff --git a/gl/lib/Makefile.in b/gl/lib/Makefile.in
index f95eca35..3433fb81 100644
--- a/gl/lib/Makefile.in
+++ b/gl/lib/Makefile.in
@@ -50,11 +50,13 @@
# --po-domain=man-db \
# --no-vc-files \
# argp \
+# array-list \
# canonicalize \
# closedir \
# dirent \
# dirname \
# error \
+# fcntl \
# flock \
# fnmatch-gnu \
# fstat \
@@ -65,9 +67,14 @@
# gitlog-to-changelog \
# glob \
# gnupload \
+# hash-map \
+# hash-pjw-bare \
+# hash-set \
# idpriv-drop \
# idpriv-droptemp \
+# lchown \
# lib-ignore \
+# linkedhash-list \
# localcharset \
# lock \
# memmem \
@@ -79,6 +86,7 @@
# openat \
# opendir \
# progname \
+# rbtree-list \
# regex \
# rename \
# setenv \
@@ -86,6 +94,8 @@
# signal \
# sigprocmask \
# stat-time \
+# stdbool \
+# strcase \
# strcasestr \
# strerror \
# strsep \
@@ -95,6 +105,10 @@
# warnings \
# xalloc \
# xgetcwd \
+# xlist \
+# xmap \
+# xset \
+# xstdopen \
# xstrndup \
# xvasprintf
@@ -184,6 +198,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -206,7 +221,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -250,7 +265,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
@@ -357,22 +372,26 @@ am__DEPENDENCIES_1 =
am__dirstamp = $(am__leading_dot)dirstamp
am_libgnu_la_OBJECTS = areadlink-with-size.lo argp-ba.lo argp-eexst.lo \
argp-fmtstream.lo argp-fs-xinl.lo argp-help.lo argp-parse.lo \
- argp-pin.lo argp-pv.lo argp-pvh.lo argp-xinl.lo bitrotate.lo \
- canonicalize.lo cloexec.lo dirname.lo basename.lo \
- dirname-lgpl.lo basename-lgpl.lo stripslash.lo exitfail.lo \
- fd-hook.lo fd-safer-flag.lo dup-safer-flag.lo file-set.lo \
- filenamecat-lgpl.lo getprogname.lo gettime.lo hard-locale.lo \
- hash.lo hash-pjw.lo hash-triple.lo idpriv-drop.lo \
- idpriv-droptemp.lo localcharset.lo glthread/lock.lo malloca.lo \
- nonblocking.lo openat-die.lo progname.lo same.lo save-cwd.lo \
- malloc/scratch_buffer_grow.lo \
+ argp-pin.lo argp-pv.lo argp-pvh.lo argp-xinl.lo \
+ gl_array_list.lo bitrotate.lo canonicalize.lo cloexec.lo \
+ dirname.lo basename.lo dirname-lgpl.lo basename-lgpl.lo \
+ stripslash.lo exitfail.lo fd-hook.lo fd-safer-flag.lo \
+ dup-safer-flag.lo file-set.lo filenamecat-lgpl.lo \
+ getprogname.lo gettime.lo hard-locale.lo hash.lo \
+ gl_hash_map.lo hash-pjw.lo hash-pjw-bare.lo gl_hash_set.lo \
+ hash-triple.lo idpriv-drop.lo idpriv-droptemp.lo \
+ gl_linkedhash_list.lo gl_list.lo localcharset.lo \
+ glthread/lock.lo malloca.lo gl_map.lo nonblocking.lo \
+ openat-die.lo progname.lo gl_rbtree_list.lo same.lo \
+ save-cwd.lo malloc/scratch_buffer_grow.lo \
malloc/scratch_buffer_grow_preserve.lo \
- malloc/scratch_buffer_set_array_size.lo sig-handler.lo \
- sockets.lo stat-time.lo strnlen1.lo sys_socket.lo tempname.lo \
- glthread/threadlib.lo timespec.lo unistd.lo dup-safer.lo \
- fd-safer.lo pipe-safer.lo utimens.lo wctype-h.lo xmalloc.lo \
- xalloc-die.lo xgetcwd.lo xsize.lo xstrndup.lo xvasprintf.lo \
- xasprintf.lo
+ malloc/scratch_buffer_set_array_size.lo gl_set.lo \
+ sig-handler.lo sockets.lo stat-time.lo stdopen.lo strnlen1.lo \
+ sys_socket.lo tempname.lo glthread/threadlib.lo timespec.lo \
+ unistd.lo dup-safer.lo fd-safer.lo pipe-safer.lo utimens.lo \
+ wctype-h.lo xmalloc.lo xalloc-die.lo xgetcwd.lo gl_xlist.lo \
+ gl_xmap.lo gl_xset.lo xsize.lo xstdopen.lo xstrndup.lo \
+ xvasprintf.lo xasprintf.lo
libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -407,31 +426,38 @@ am__depfiles_remade = ./$(DEPDIR)/alloca.Plo \
./$(DEPDIR)/basename-lgpl.Plo ./$(DEPDIR)/basename.Plo \
./$(DEPDIR)/bitrotate.Plo ./$(DEPDIR)/btowc.Plo \
./$(DEPDIR)/canonicalize-lgpl.Plo ./$(DEPDIR)/canonicalize.Plo \
- ./$(DEPDIR)/chdir-long.Plo ./$(DEPDIR)/cloexec.Plo \
- ./$(DEPDIR)/close.Plo ./$(DEPDIR)/closedir.Plo \
- ./$(DEPDIR)/dirfd.Plo ./$(DEPDIR)/dirname-lgpl.Plo \
- ./$(DEPDIR)/dirname.Plo ./$(DEPDIR)/dup-safer-flag.Plo \
- ./$(DEPDIR)/dup-safer.Plo ./$(DEPDIR)/dup.Plo \
- ./$(DEPDIR)/dup2.Plo ./$(DEPDIR)/error.Plo \
+ ./$(DEPDIR)/chdir-long.Plo ./$(DEPDIR)/chown.Plo \
+ ./$(DEPDIR)/cloexec.Plo ./$(DEPDIR)/close.Plo \
+ ./$(DEPDIR)/closedir.Plo ./$(DEPDIR)/dirfd.Plo \
+ ./$(DEPDIR)/dirname-lgpl.Plo ./$(DEPDIR)/dirname.Plo \
+ ./$(DEPDIR)/dup-safer-flag.Plo ./$(DEPDIR)/dup-safer.Plo \
+ ./$(DEPDIR)/dup.Plo ./$(DEPDIR)/dup2.Plo ./$(DEPDIR)/error.Plo \
./$(DEPDIR)/exitfail.Plo ./$(DEPDIR)/fchdir.Plo \
- ./$(DEPDIR)/fcntl.Plo ./$(DEPDIR)/fd-hook.Plo \
- ./$(DEPDIR)/fd-safer-flag.Plo ./$(DEPDIR)/fd-safer.Plo \
- ./$(DEPDIR)/fdopendir.Plo ./$(DEPDIR)/file-set.Plo \
- ./$(DEPDIR)/filenamecat-lgpl.Plo ./$(DEPDIR)/float.Plo \
- ./$(DEPDIR)/flock.Plo ./$(DEPDIR)/fnmatch.Plo \
- ./$(DEPDIR)/fnmatch_loop.Plo ./$(DEPDIR)/fstat.Plo \
- ./$(DEPDIR)/fstatat.Plo ./$(DEPDIR)/futimens.Plo \
- ./$(DEPDIR)/getcwd-lgpl.Plo ./$(DEPDIR)/getcwd.Plo \
- ./$(DEPDIR)/getdelim.Plo ./$(DEPDIR)/getdtablesize.Plo \
- ./$(DEPDIR)/getline.Plo ./$(DEPDIR)/getlogin_r.Plo \
- ./$(DEPDIR)/getopt.Plo ./$(DEPDIR)/getopt1.Plo \
- ./$(DEPDIR)/getprogname.Plo ./$(DEPDIR)/gettime.Plo \
- ./$(DEPDIR)/gettimeofday.Plo ./$(DEPDIR)/glob.Plo \
+ ./$(DEPDIR)/fchown-stub.Plo ./$(DEPDIR)/fcntl.Plo \
+ ./$(DEPDIR)/fd-hook.Plo ./$(DEPDIR)/fd-safer-flag.Plo \
+ ./$(DEPDIR)/fd-safer.Plo ./$(DEPDIR)/fdopendir.Plo \
+ ./$(DEPDIR)/file-set.Plo ./$(DEPDIR)/filenamecat-lgpl.Plo \
+ ./$(DEPDIR)/float.Plo ./$(DEPDIR)/flock.Plo \
+ ./$(DEPDIR)/fnmatch.Plo ./$(DEPDIR)/fnmatch_loop.Plo \
+ ./$(DEPDIR)/fstat.Plo ./$(DEPDIR)/fstatat.Plo \
+ ./$(DEPDIR)/futimens.Plo ./$(DEPDIR)/getcwd-lgpl.Plo \
+ ./$(DEPDIR)/getcwd.Plo ./$(DEPDIR)/getdelim.Plo \
+ ./$(DEPDIR)/getdtablesize.Plo ./$(DEPDIR)/getline.Plo \
+ ./$(DEPDIR)/getlogin_r.Plo ./$(DEPDIR)/getopt.Plo \
+ ./$(DEPDIR)/getopt1.Plo ./$(DEPDIR)/getprogname.Plo \
+ ./$(DEPDIR)/gettime.Plo ./$(DEPDIR)/gettimeofday.Plo \
+ ./$(DEPDIR)/gl_array_list.Plo ./$(DEPDIR)/gl_hash_map.Plo \
+ ./$(DEPDIR)/gl_hash_set.Plo ./$(DEPDIR)/gl_linkedhash_list.Plo \
+ ./$(DEPDIR)/gl_list.Plo ./$(DEPDIR)/gl_map.Plo \
+ ./$(DEPDIR)/gl_rbtree_list.Plo ./$(DEPDIR)/gl_set.Plo \
+ ./$(DEPDIR)/gl_xlist.Plo ./$(DEPDIR)/gl_xmap.Plo \
+ ./$(DEPDIR)/gl_xset.Plo ./$(DEPDIR)/glob.Plo \
./$(DEPDIR)/glob_pattern_p.Plo ./$(DEPDIR)/globfree.Plo \
- ./$(DEPDIR)/hard-locale.Plo ./$(DEPDIR)/hash-pjw.Plo \
- ./$(DEPDIR)/hash-triple.Plo ./$(DEPDIR)/hash.Plo \
- ./$(DEPDIR)/idpriv-drop.Plo ./$(DEPDIR)/idpriv-droptemp.Plo \
- ./$(DEPDIR)/ioctl.Plo ./$(DEPDIR)/itold.Plo \
+ ./$(DEPDIR)/hard-locale.Plo ./$(DEPDIR)/hash-pjw-bare.Plo \
+ ./$(DEPDIR)/hash-pjw.Plo ./$(DEPDIR)/hash-triple.Plo \
+ ./$(DEPDIR)/hash.Plo ./$(DEPDIR)/idpriv-drop.Plo \
+ ./$(DEPDIR)/idpriv-droptemp.Plo ./$(DEPDIR)/ioctl.Plo \
+ ./$(DEPDIR)/itold.Plo ./$(DEPDIR)/lchown.Plo \
./$(DEPDIR)/localcharset.Plo ./$(DEPDIR)/localeconv.Plo \
./$(DEPDIR)/localtime-buffer.Plo ./$(DEPDIR)/lstat.Plo \
./$(DEPDIR)/malloc.Plo ./$(DEPDIR)/malloca.Plo \
@@ -461,21 +487,22 @@ am__depfiles_remade = ./$(DEPDIR)/alloca.Plo \
./$(DEPDIR)/sockets.Plo ./$(DEPDIR)/stat-time.Plo \
./$(DEPDIR)/stat-w32.Plo ./$(DEPDIR)/stat.Plo \
./$(DEPDIR)/stdio-read.Plo ./$(DEPDIR)/stdio-write.Plo \
- ./$(DEPDIR)/strcasecmp.Plo ./$(DEPDIR)/strcasestr.Plo \
- ./$(DEPDIR)/strchrnul.Plo ./$(DEPDIR)/strdup.Plo \
- ./$(DEPDIR)/strerror-override.Plo ./$(DEPDIR)/strerror.Plo \
- ./$(DEPDIR)/stripslash.Plo ./$(DEPDIR)/strncasecmp.Plo \
- ./$(DEPDIR)/strndup.Plo ./$(DEPDIR)/strnlen.Plo \
- ./$(DEPDIR)/strnlen1.Plo ./$(DEPDIR)/strsep.Plo \
- ./$(DEPDIR)/sys_socket.Plo ./$(DEPDIR)/tempname.Plo \
- ./$(DEPDIR)/timespec.Plo ./$(DEPDIR)/unistd.Plo \
- ./$(DEPDIR)/unsetenv.Plo ./$(DEPDIR)/utime.Plo \
- ./$(DEPDIR)/utimens.Plo ./$(DEPDIR)/vasnprintf.Plo \
- ./$(DEPDIR)/vasprintf.Plo ./$(DEPDIR)/vsnprintf.Plo \
- ./$(DEPDIR)/wcrtomb.Plo ./$(DEPDIR)/wctype-h.Plo \
- ./$(DEPDIR)/xalloc-die.Plo ./$(DEPDIR)/xasprintf.Plo \
- ./$(DEPDIR)/xgetcwd.Plo ./$(DEPDIR)/xmalloc.Plo \
- ./$(DEPDIR)/xsize.Plo ./$(DEPDIR)/xstrndup.Plo \
+ ./$(DEPDIR)/stdopen.Plo ./$(DEPDIR)/strcasecmp.Plo \
+ ./$(DEPDIR)/strcasestr.Plo ./$(DEPDIR)/strchrnul.Plo \
+ ./$(DEPDIR)/strdup.Plo ./$(DEPDIR)/strerror-override.Plo \
+ ./$(DEPDIR)/strerror.Plo ./$(DEPDIR)/stripslash.Plo \
+ ./$(DEPDIR)/strncasecmp.Plo ./$(DEPDIR)/strndup.Plo \
+ ./$(DEPDIR)/strnlen.Plo ./$(DEPDIR)/strnlen1.Plo \
+ ./$(DEPDIR)/strsep.Plo ./$(DEPDIR)/sys_socket.Plo \
+ ./$(DEPDIR)/tempname.Plo ./$(DEPDIR)/timespec.Plo \
+ ./$(DEPDIR)/unistd.Plo ./$(DEPDIR)/unsetenv.Plo \
+ ./$(DEPDIR)/utime.Plo ./$(DEPDIR)/utimens.Plo \
+ ./$(DEPDIR)/vasnprintf.Plo ./$(DEPDIR)/vasprintf.Plo \
+ ./$(DEPDIR)/vsnprintf.Plo ./$(DEPDIR)/wcrtomb.Plo \
+ ./$(DEPDIR)/wctype-h.Plo ./$(DEPDIR)/xalloc-die.Plo \
+ ./$(DEPDIR)/xasprintf.Plo ./$(DEPDIR)/xgetcwd.Plo \
+ ./$(DEPDIR)/xmalloc.Plo ./$(DEPDIR)/xsize.Plo \
+ ./$(DEPDIR)/xstdopen.Plo ./$(DEPDIR)/xstrndup.Plo \
./$(DEPDIR)/xvasprintf.Plo glthread/$(DEPDIR)/lock.Plo \
glthread/$(DEPDIR)/threadlib.Plo \
malloc/$(DEPDIR)/scratch_buffer_grow.Plo \
@@ -1644,25 +1671,25 @@ noinst_LIBRARIES =
noinst_LTLIBRARIES = libgnu.la
EXTRA_DIST = alloca.c alloca.in.h areadlink.h assure.h openat-priv.h \
openat-proc.c btowc.c canonicalize.h canonicalize-lgpl.c \
- chdir-long.c chdir-long.h cloexec.h close.c closedir.c \
- dirent-private.h dirent.in.h dirfd.c stripslash.c dirname.h \
- dosname.h dup.c dup2.c errno.in.h error.c error.h exitfail.h \
- fchdir.c fcntl.c fcntl.in.h fd-hook.h fdopendir.c file-set.h \
- filename.h filenamecat.h flexmember.h float.c float.in.h \
- itold.c flock.c fnmatch.c fnmatch_loop.c fnmatch.in.h fstat.c \
- stat-w32.c stat-w32.h at-func.c fstatat.c futimens.c getcwd.c \
- getcwd-lgpl.c getdelim.c getdtablesize.c getline.c \
- getlogin_r.c getopt-cdefs.in.h getopt-core.h getopt-ext.h \
- getopt-pfx-core.h getopt-pfx-ext.h getopt.c getopt.in.h \
- getopt1.c getopt_int.h gettimeofday.c \
- $(top_srcdir)/build-aux/gitlog-to-changelog glob.c \
- glob_internal.h glob_pattern_p.c globfree.c glob-libc.h \
+ chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.h \
+ close.c closedir.c dirent-private.h dirent.in.h dirfd.c \
+ stripslash.c dirname.h dosname.h dup.c dup2.c errno.in.h \
+ error.c error.h exitfail.h fchdir.c fcntl.c fcntl.in.h \
+ fd-hook.h fdopendir.c file-set.h filename.h filenamecat.h \
+ flexmember.h float.c float.in.h itold.c flock.c fnmatch.c \
+ fnmatch_loop.c fnmatch.in.h fstat.c stat-w32.c stat-w32.h \
+ at-func.c fstatat.c futimens.c getcwd.c getcwd-lgpl.c \
+ getdelim.c getdtablesize.c getline.c getlogin_r.c \
+ getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h \
+ getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h \
+ gettimeofday.c $(top_srcdir)/build-aux/gitlog-to-changelog \
+ glob.c glob_internal.h glob_pattern_p.c globfree.c glob-libc.h \
glob.in.h $(top_srcdir)/build-aux/gnupload hard-locale.h \
hash.h hash-triple.h $(top_srcdir)/build-aux/config.rpath \
idpriv.h idpriv.h intprops.h ioctl.c w32sock.h langinfo.in.h \
- cdefs.h libc-config.h limits.in.h localcharset.h locale.in.h \
- localeconv.c localtime-buffer.c localtime-buffer.h lstat.c \
- malloc.c malloc.c malloca.h mbrtowc.c mbsinit.c \
+ lchown.c cdefs.h libc-config.h limits.in.h localcharset.h \
+ locale.in.h localeconv.c localtime-buffer.c localtime-buffer.h \
+ lstat.c malloc.c malloc.c malloca.h mbrtowc.c mbsinit.c \
mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c mbtowc-impl.h \
mbtowc.c memchr.c memchr.valgrind memmem.c str-two-way.h \
mempcpy.c memrchr.c mkdir.c mkdtemp.c mkstemp.c msvc-inval.c \
@@ -1678,7 +1705,7 @@ EXTRA_DIST = alloca.c alloca.in.h areadlink.h assure.h openat-priv.h \
sleep.c _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h \
w32sock.h stat-w32.c stat-w32.h stat.c stat-time.h \
stdalign.in.h stdarg.in.h stdbool.in.h stddef.in.h stdint.in.h \
- stdio.in.h stdlib.in.h strcasecmp.c strncasecmp.c \
+ stdio.in.h stdlib.in.h stdopen.h strcasecmp.c strncasecmp.c \
str-two-way.h strcasestr.c strchrnul.c strchrnul.valgrind \
strdup.c streq.h strerror.c strerror-override.c \
strerror-override.h string.in.h strings.in.h strndup.c \
@@ -1691,7 +1718,7 @@ EXTRA_DIST = alloca.c alloca.in.h areadlink.h assure.h openat-priv.h \
printf-args.h printf-parse.c printf-parse.h vasnprintf.c \
vasnprintf.h asprintf.c vasprintf.c verify.h vsnprintf.c \
wchar.in.h wcrtomb.c wctype.in.h xalloc.h xalloc-oversized.h \
- xgetcwd.h xalloc.h
+ xgetcwd.h xstdopen.h xalloc.h
BUILT_SOURCES = $(ALLOCA_H) dirent.h $(ERRNO_H) fcntl.h $(FLOAT_H) \
$(FNMATCH_H) $(GETOPT_H) $(GETOPT_CDEFS_H) $(GLOB_H) \
langinfo.h $(LIMITS_H) locale.h signal.h $(STDALIGN_H) \
@@ -1725,47 +1752,57 @@ AM_CFLAGS =
libgnu_la_SOURCES = areadlink-with-size.c argp.h argp-ba.c \
argp-eexst.c argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c \
argp-help.c argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c \
- argp-pvh.c argp-xinl.c bitrotate.h bitrotate.c canonicalize.c \
- cloexec.c dirname.c basename.c dirname-lgpl.c basename-lgpl.c \
- stripslash.c exitfail.c fd-hook.c fd-safer-flag.c \
- dup-safer-flag.c file-set.c filenamecat-lgpl.c getprogname.h \
- getprogname.c gettext.h gettime.c hard-locale.c hash.c \
- hash-pjw.h hash-pjw.c hash-triple.c idpriv-drop.c \
- idpriv-droptemp.c localcharset.c glthread/lock.h \
- glthread/lock.c malloca.c minmax.h nonblocking.c openat-die.c \
- progname.h progname.c same.c save-cwd.c \
+ argp-pvh.c argp-xinl.c gl_array_list.h gl_array_list.c \
+ bitrotate.h bitrotate.c canonicalize.c cloexec.c dirname.c \
+ basename.c dirname-lgpl.c basename-lgpl.c stripslash.c \
+ exitfail.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \
+ file-set.c filenamecat-lgpl.c getprogname.h getprogname.c \
+ gettext.h gettime.c hard-locale.c hash.c gl_hash_map.h \
+ gl_hash_map.c gl_anyhash1.h gl_anyhash2.h gl_anyhash_primes.h \
+ hash-pjw.h hash-pjw.c hash-pjw-bare.h hash-pjw-bare.c \
+ gl_hash_set.h gl_hash_set.c gl_anyhash1.h gl_anyhash2.h \
+ gl_anyhash_primes.h hash-triple.c idpriv-drop.c \
+ idpriv-droptemp.c gl_linkedhash_list.h gl_linkedhash_list.c \
+ gl_anyhash1.h gl_anyhash2.h gl_anyhash_primes.h \
+ gl_anylinked_list1.h gl_anylinked_list2.h gl_list.h gl_list.c \
+ localcharset.c glthread/lock.h glthread/lock.c malloca.c \
+ gl_map.h gl_map.c minmax.h nonblocking.c openat-die.c \
+ progname.h progname.c gl_rbtree_list.h gl_rbtree_list.c \
+ gl_anyrbtree_list1.h gl_anyrbtree_list2.h gl_anytree_list1.h \
+ gl_anytree_list2.h same.c save-cwd.c \
malloc/scratch_buffer_grow.c \
malloc/scratch_buffer_grow_preserve.c \
- malloc/scratch_buffer_set_array_size.c sig-handler.c \
- size_max.h sockets.h sockets.c stat-time.c strnlen1.h \
- strnlen1.c sys_socket.c tempname.c glthread/threadlib.c \
- timespec.c unistd.c dup-safer.c fd-safer.c pipe-safer.c \
- utimens.c wctype-h.c xmalloc.c xalloc-die.c xgetcwd.c xsize.h \
- xsize.c xstrndup.h xstrndup.c xvasprintf.h xvasprintf.c \
- xasprintf.c
+ malloc/scratch_buffer_set_array_size.c gl_set.h gl_set.c \
+ sig-handler.c size_max.h sockets.h sockets.c stat-time.c \
+ stdopen.c strnlen1.h strnlen1.c sys_socket.c tempname.c \
+ glthread/threadlib.c timespec.c unistd.c dup-safer.c \
+ fd-safer.c pipe-safer.c utimens.c wctype-h.c xmalloc.c \
+ xalloc-die.c xgetcwd.c gl_xlist.h gl_xlist.c gl_xmap.h \
+ gl_xmap.c gl_xset.h gl_xset.c xsize.h xsize.c xstdopen.c \
+ xstrndup.h xstrndup.c xvasprintf.h xvasprintf.c xasprintf.c
libgnu_la_LIBADD = $(gl_LTLIBOBJS) @LTALLOCA@
libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) @LTALLOCA@
EXTRA_libgnu_la_SOURCES = alloca.c openat-proc.c btowc.c \
- canonicalize-lgpl.c chdir-long.c close.c closedir.c dirfd.c \
- stripslash.c dup.c dup2.c error.c fchdir.c fcntl.c fdopendir.c \
- float.c itold.c flock.c fnmatch.c fnmatch_loop.c fstat.c \
- stat-w32.c at-func.c fstatat.c futimens.c getcwd.c \
- getcwd-lgpl.c getdelim.c getdtablesize.c getline.c \
- getlogin_r.c getopt.c getopt1.c gettimeofday.c glob.c \
- glob_pattern_p.c globfree.c ioctl.c localeconv.c \
- localtime-buffer.c lstat.c malloc.c malloc.c mbrtowc.c \
- mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c memchr.c \
- memmem.c mempcpy.c memrchr.c mkdir.c mkdtemp.c mkstemp.c \
- msvc-inval.c msvc-nothrow.c nanosleep.c nl_langinfo.c \
- stdio-read.c stdio-write.c open.c openat.c opendir.c raise.c \
- rawmemchr.c readdir.c readlink.c realloc.c regcomp.c regex.c \
- regex_internal.c regexec.c rename.c rewinddir.c rmdir.c \
- select.c setenv.c sigaction.c sigprocmask.c sleep.c stat-w32.c \
- stat.c strcasecmp.c strncasecmp.c strcasestr.c strchrnul.c \
- strdup.c strerror.c strerror-override.c strndup.c strnlen.c \
- strsep.c unsetenv.c utime.c asnprintf.c printf-args.c \
- printf-parse.c vasnprintf.c asprintf.c vasprintf.c vsnprintf.c \
- wcrtomb.c
+ canonicalize-lgpl.c chdir-long.c chown.c fchown-stub.c close.c \
+ closedir.c dirfd.c stripslash.c dup.c dup2.c error.c fchdir.c \
+ fcntl.c fdopendir.c float.c itold.c flock.c fnmatch.c \
+ fnmatch_loop.c fstat.c stat-w32.c at-func.c fstatat.c \
+ futimens.c getcwd.c getcwd-lgpl.c getdelim.c getdtablesize.c \
+ getline.c getlogin_r.c getopt.c getopt1.c gettimeofday.c \
+ glob.c glob_pattern_p.c globfree.c ioctl.c lchown.c \
+ localeconv.c localtime-buffer.c lstat.c malloc.c malloc.c \
+ mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \
+ memchr.c memmem.c mempcpy.c memrchr.c mkdir.c mkdtemp.c \
+ mkstemp.c msvc-inval.c msvc-nothrow.c nanosleep.c \
+ nl_langinfo.c stdio-read.c stdio-write.c open.c openat.c \
+ opendir.c raise.c rawmemchr.c readdir.c readlink.c realloc.c \
+ regcomp.c regex.c regex_internal.c regexec.c rename.c \
+ rewinddir.c rmdir.c select.c setenv.c sigaction.c \
+ sigprocmask.c sleep.c stat-w32.c stat.c strcasecmp.c \
+ strncasecmp.c strcasestr.c strchrnul.c strdup.c strerror.c \
+ strerror-override.c strndup.c strnlen.c strsep.c unsetenv.c \
+ utime.c asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
+ asprintf.c vasprintf.c vsnprintf.c wcrtomb.c
libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LIBSOCKET) \
$(LIB_CLOCK_GETTIME) $(LIB_GETLOGIN) $(LIB_NANOSLEEP) \
$(LIB_SELECT) $(LTLIBINTL) $(LTLIBTHREAD)
@@ -1900,6 +1937,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chdir-long.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloexec.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closedir.Plo@am__quote@ # am--include-marker
@@ -1913,6 +1951,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown-stub.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-safer-flag.Plo@am__quote@ # am--include-marker
@@ -1938,10 +1977,22 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getprogname.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_array_list.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_hash_map.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_hash_set.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_linkedhash_list.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_list.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_map.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_rbtree_list.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_set.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_xlist.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_xmap.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gl_xset.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob_pattern_p.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globfree.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw-bare.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-triple.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Plo@am__quote@ # am--include-marker
@@ -1949,6 +2000,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idpriv-droptemp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localtime-buffer.Plo@am__quote@ # am--include-marker
@@ -2007,6 +2059,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-read.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdio-write.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdopen.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasestr.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strchrnul.Plo@am__quote@ # am--include-marker
@@ -2036,6 +2089,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstdopen.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xvasprintf.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Plo@am__quote@ # am--include-marker
@@ -2313,6 +2367,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/canonicalize-lgpl.Plo
-rm -f ./$(DEPDIR)/canonicalize.Plo
-rm -f ./$(DEPDIR)/chdir-long.Plo
+ -rm -f ./$(DEPDIR)/chown.Plo
-rm -f ./$(DEPDIR)/cloexec.Plo
-rm -f ./$(DEPDIR)/close.Plo
-rm -f ./$(DEPDIR)/closedir.Plo
@@ -2326,6 +2381,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/error.Plo
-rm -f ./$(DEPDIR)/exitfail.Plo
-rm -f ./$(DEPDIR)/fchdir.Plo
+ -rm -f ./$(DEPDIR)/fchown-stub.Plo
-rm -f ./$(DEPDIR)/fcntl.Plo
-rm -f ./$(DEPDIR)/fd-hook.Plo
-rm -f ./$(DEPDIR)/fd-safer-flag.Plo
@@ -2351,10 +2407,22 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/getprogname.Plo
-rm -f ./$(DEPDIR)/gettime.Plo
-rm -f ./$(DEPDIR)/gettimeofday.Plo
+ -rm -f ./$(DEPDIR)/gl_array_list.Plo
+ -rm -f ./$(DEPDIR)/gl_hash_map.Plo
+ -rm -f ./$(DEPDIR)/gl_hash_set.Plo
+ -rm -f ./$(DEPDIR)/gl_linkedhash_list.Plo
+ -rm -f ./$(DEPDIR)/gl_list.Plo
+ -rm -f ./$(DEPDIR)/gl_map.Plo
+ -rm -f ./$(DEPDIR)/gl_rbtree_list.Plo
+ -rm -f ./$(DEPDIR)/gl_set.Plo
+ -rm -f ./$(DEPDIR)/gl_xlist.Plo
+ -rm -f ./$(DEPDIR)/gl_xmap.Plo
+ -rm -f ./$(DEPDIR)/gl_xset.Plo
-rm -f ./$(DEPDIR)/glob.Plo
-rm -f ./$(DEPDIR)/glob_pattern_p.Plo
-rm -f ./$(DEPDIR)/globfree.Plo
-rm -f ./$(DEPDIR)/hard-locale.Plo
+ -rm -f ./$(DEPDIR)/hash-pjw-bare.Plo
-rm -f ./$(DEPDIR)/hash-pjw.Plo
-rm -f ./$(DEPDIR)/hash-triple.Plo
-rm -f ./$(DEPDIR)/hash.Plo
@@ -2362,6 +2430,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/idpriv-droptemp.Plo
-rm -f ./$(DEPDIR)/ioctl.Plo
-rm -f ./$(DEPDIR)/itold.Plo
+ -rm -f ./$(DEPDIR)/lchown.Plo
-rm -f ./$(DEPDIR)/localcharset.Plo
-rm -f ./$(DEPDIR)/localeconv.Plo
-rm -f ./$(DEPDIR)/localtime-buffer.Plo
@@ -2420,6 +2489,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/stat.Plo
-rm -f ./$(DEPDIR)/stdio-read.Plo
-rm -f ./$(DEPDIR)/stdio-write.Plo
+ -rm -f ./$(DEPDIR)/stdopen.Plo
-rm -f ./$(DEPDIR)/strcasecmp.Plo
-rm -f ./$(DEPDIR)/strcasestr.Plo
-rm -f ./$(DEPDIR)/strchrnul.Plo
@@ -2449,6 +2519,7 @@ distclean: distclean-recursive
-rm -f ./$(DEPDIR)/xgetcwd.Plo
-rm -f ./$(DEPDIR)/xmalloc.Plo
-rm -f ./$(DEPDIR)/xsize.Plo
+ -rm -f ./$(DEPDIR)/xstdopen.Plo
-rm -f ./$(DEPDIR)/xstrndup.Plo
-rm -f ./$(DEPDIR)/xvasprintf.Plo
-rm -f glthread/$(DEPDIR)/lock.Plo
@@ -2523,6 +2594,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/canonicalize-lgpl.Plo
-rm -f ./$(DEPDIR)/canonicalize.Plo
-rm -f ./$(DEPDIR)/chdir-long.Plo
+ -rm -f ./$(DEPDIR)/chown.Plo
-rm -f ./$(DEPDIR)/cloexec.Plo
-rm -f ./$(DEPDIR)/close.Plo
-rm -f ./$(DEPDIR)/closedir.Plo
@@ -2536,6 +2608,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/error.Plo
-rm -f ./$(DEPDIR)/exitfail.Plo
-rm -f ./$(DEPDIR)/fchdir.Plo
+ -rm -f ./$(DEPDIR)/fchown-stub.Plo
-rm -f ./$(DEPDIR)/fcntl.Plo
-rm -f ./$(DEPDIR)/fd-hook.Plo
-rm -f ./$(DEPDIR)/fd-safer-flag.Plo
@@ -2561,10 +2634,22 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/getprogname.Plo
-rm -f ./$(DEPDIR)/gettime.Plo
-rm -f ./$(DEPDIR)/gettimeofday.Plo
+ -rm -f ./$(DEPDIR)/gl_array_list.Plo
+ -rm -f ./$(DEPDIR)/gl_hash_map.Plo
+ -rm -f ./$(DEPDIR)/gl_hash_set.Plo
+ -rm -f ./$(DEPDIR)/gl_linkedhash_list.Plo
+ -rm -f ./$(DEPDIR)/gl_list.Plo
+ -rm -f ./$(DEPDIR)/gl_map.Plo
+ -rm -f ./$(DEPDIR)/gl_rbtree_list.Plo
+ -rm -f ./$(DEPDIR)/gl_set.Plo
+ -rm -f ./$(DEPDIR)/gl_xlist.Plo
+ -rm -f ./$(DEPDIR)/gl_xmap.Plo
+ -rm -f ./$(DEPDIR)/gl_xset.Plo
-rm -f ./$(DEPDIR)/glob.Plo
-rm -f ./$(DEPDIR)/glob_pattern_p.Plo
-rm -f ./$(DEPDIR)/globfree.Plo
-rm -f ./$(DEPDIR)/hard-locale.Plo
+ -rm -f ./$(DEPDIR)/hash-pjw-bare.Plo
-rm -f ./$(DEPDIR)/hash-pjw.Plo
-rm -f ./$(DEPDIR)/hash-triple.Plo
-rm -f ./$(DEPDIR)/hash.Plo
@@ -2572,6 +2657,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/idpriv-droptemp.Plo
-rm -f ./$(DEPDIR)/ioctl.Plo
-rm -f ./$(DEPDIR)/itold.Plo
+ -rm -f ./$(DEPDIR)/lchown.Plo
-rm -f ./$(DEPDIR)/localcharset.Plo
-rm -f ./$(DEPDIR)/localeconv.Plo
-rm -f ./$(DEPDIR)/localtime-buffer.Plo
@@ -2630,6 +2716,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/stat.Plo
-rm -f ./$(DEPDIR)/stdio-read.Plo
-rm -f ./$(DEPDIR)/stdio-write.Plo
+ -rm -f ./$(DEPDIR)/stdopen.Plo
-rm -f ./$(DEPDIR)/strcasecmp.Plo
-rm -f ./$(DEPDIR)/strcasestr.Plo
-rm -f ./$(DEPDIR)/strchrnul.Plo
@@ -2659,6 +2746,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f ./$(DEPDIR)/xgetcwd.Plo
-rm -f ./$(DEPDIR)/xmalloc.Plo
-rm -f ./$(DEPDIR)/xsize.Plo
+ -rm -f ./$(DEPDIR)/xstdopen.Plo
-rm -f ./$(DEPDIR)/xstrndup.Plo
-rm -f ./$(DEPDIR)/xvasprintf.Plo
-rm -f glthread/$(DEPDIR)/lock.Plo
diff --git a/gl/lib/argp-help.c b/gl/lib/argp-help.c
index febd5477..f4e2e048 100644
--- a/gl/lib/argp-help.c
+++ b/gl/lib/argp-help.c
@@ -1031,7 +1031,7 @@ static void
print_header (const char *str, const struct argp *argp,
struct pentry_state *pest)
{
- const char *tstr = dgettext (argp->argp_domain, str);
+ const char *tstr = str ? dgettext (argp->argp_domain, str) : NULL;
const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_HEADER, argp, pest->state);
if (fstr)
@@ -1422,8 +1422,10 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state,
char *our_level = *levels;
int multiple = 0;
const struct argp_child *child = argp->children;
- const char *tdoc = dgettext (argp->argp_domain, argp->args_doc), *nl = 0;
+ const char *tdoc =
+ argp->args_doc ? dgettext (argp->argp_domain, argp->args_doc) : NULL;
const char *fdoc = filter_doc (tdoc, ARGP_KEY_HELP_ARGS_DOC, argp, state);
+ const char *nl = NULL;
if (fdoc)
{
@@ -1487,7 +1489,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
void *input = 0;
int anything = 0;
size_t inp_text_limit = 0;
- const char *doc = dgettext (argp->argp_domain, argp->doc);
+ const char *doc = argp->doc ? dgettext (argp->argp_domain, argp->doc) : NULL;
const struct argp_child *child = argp->children;
if (doc)
@@ -1564,7 +1566,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
}
/* Output a usage message for ARGP to STREAM. If called from
- argp_state_help, STATE is the relevent parsing state. FLAGS are from the
+ argp_state_help, STATE is the relevant parsing state. FLAGS are from the
set ARGP_HELP_*. NAME is what to use wherever a 'program name' is
needed. */
static void
diff --git a/gl/lib/argp.h b/gl/lib/argp.h
index 317ac034..7aba8877 100644
--- a/gl/lib/argp.h
+++ b/gl/lib/argp.h
@@ -69,6 +69,9 @@ typedef int error_t;
extern "C" {
#endif
+/* Glibc documentation:
+ https://www.gnu.org/software/libc/manual/html_node/Argp.html */
+
/* A description of a particular option. A pointer to an array of
these is passed in the OPTIONS field of an argp structure. Each option
entry can correspond to one long option and/or one short option; more
@@ -236,9 +239,9 @@ struct argp
ARGP_KEY_ definitions below. */
argp_parser_t parser;
- /* A string describing what other arguments are wanted by this program. It
- is only used by argp_usage to print the "Usage:" message. If it
- contains newlines, the strings separated by them are considered
+ /* If non-NULL, a string describing what other arguments are wanted by this
+ program. It is only used by argp_usage to print the "Usage:" message.
+ If it contains newlines, the strings separated by them are considered
alternative usage patterns, and printed on separate lines (lines after
the first are prefix by " or: " instead of "Usage:"). */
const char *args_doc;
diff --git a/gl/lib/cdefs.h b/gl/lib/cdefs.h
index f7a10644..96d26164 100644
--- a/gl/lib/cdefs.h
+++ b/gl/lib/cdefs.h
@@ -340,7 +340,7 @@
semantics.
clang++ identifies itself as gcc-4.2, but has support for GNU inlining
- semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+ semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
__GNUC_GNU_INLINE__ macro definitions. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
diff --git a/gl/lib/chown.c b/gl/lib/chown.c
new file mode 100644
index 00000000..fc73e778
--- /dev/null
+++ b/gl/lib/chown.c
@@ -0,0 +1,151 @@
+/* provide consistent interface to chown for systems that don't interpret
+ an ID of -1 as meaning "don't change the corresponding ID".
+
+ Copyright (C) 1997, 2004-2007, 2009-2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+/* Specification. */
+#include <unistd.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#if !HAVE_CHOWN
+
+/* Simple stub that always fails with ENOSYS, for mingw. */
+int
+chown (const char *file _GL_UNUSED, uid_t uid _GL_UNUSED,
+ gid_t gid _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_CHOWN */
+
+/* Below we refer to the system's chown(). */
+# undef chown
+
+/* Provide a more-closely POSIX-conforming version of chown on
+ systems with one or both of the following problems:
+ - chown doesn't treat an ID of -1 as meaning
+ "don't change the corresponding ID".
+ - chown doesn't dereference symlinks. */
+
+int
+rpl_chown (const char *file, uid_t uid, gid_t gid)
+{
+ struct stat st;
+ bool stat_valid = false;
+ int result;
+
+# if CHOWN_CHANGE_TIME_BUG
+ if (gid != (gid_t) -1 || uid != (uid_t) -1)
+ {
+ if (stat (file, &st))
+ return -1;
+ stat_valid = true;
+ }
+# endif
+
+# if CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE
+ if (gid == (gid_t) -1 || uid == (uid_t) -1)
+ {
+ /* Stat file to get id(s) that should remain unchanged. */
+ if (!stat_valid && stat (file, &st))
+ return -1;
+ if (gid == (gid_t) -1)
+ gid = st.st_gid;
+ if (uid == (uid_t) -1)
+ uid = st.st_uid;
+ }
+# endif
+
+# if CHOWN_MODIFIES_SYMLINK
+ {
+ /* Handle the case in which the system-supplied chown function
+ does *not* follow symlinks. Instead, it changes permissions
+ on the symlink itself. To work around that, we open the
+ file (but this can fail due to lack of read or write permission) and
+ use fchown on the resulting descriptor. */
+ int open_flags = O_NONBLOCK | O_NOCTTY;
+ int fd = open (file, O_RDONLY | open_flags);
+ if (0 <= fd
+ || (errno == EACCES
+ && 0 <= (fd = open (file, O_WRONLY | open_flags))))
+ {
+ int saved_errno;
+ bool fchown_socket_failure;
+
+ result = fchown (fd, uid, gid);
+ saved_errno = errno;
+
+ /* POSIX says fchown can fail with errno == EINVAL on sockets
+ and pipes, so fall back on chown in that case. */
+ fchown_socket_failure =
+ (result != 0 && saved_errno == EINVAL
+ && fstat (fd, &st) == 0
+ && (S_ISFIFO (st.st_mode) || S_ISSOCK (st.st_mode)));
+
+ close (fd);
+
+ if (! fchown_socket_failure)
+ {
+ errno = saved_errno;
+ return result;
+ }
+ }
+ else if (errno != EACCES)
+ return -1;
+ }
+# endif
+
+# if CHOWN_TRAILING_SLASH_BUG
+ if (!stat_valid)
+ {
+ size_t len = strlen (file);
+ if (len && file[len - 1] == '/' && stat (file, &st))
+ return -1;
+ }
+# endif
+
+ result = chown (file, uid, gid);
+
+# if CHOWN_CHANGE_TIME_BUG
+ if (result == 0 && stat_valid
+ && (uid == st.st_uid || uid == (uid_t) -1)
+ && (gid == st.st_gid || gid == (gid_t) -1))
+ {
+ /* No change in ownership, but at least one argument was not -1,
+ so we are required to update ctime. Since chown succeeded,
+ we assume that chmod will do likewise. Fortunately, on all
+ known systems where a 'no-op' chown skips the ctime update, a
+ 'no-op' chmod still does the trick. */
+ result = chmod (file, st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO
+ | S_ISUID | S_ISGID | S_ISVTX));
+ }
+# endif
+
+ return result;
+}
+
+#endif /* HAVE_CHOWN */
diff --git a/gl/lib/fchown-stub.c b/gl/lib/fchown-stub.c
new file mode 100644
index 00000000..62b69690
--- /dev/null
+++ b/gl/lib/fchown-stub.c
@@ -0,0 +1,16 @@
+#include <config.h>
+
+#include <sys/types.h>
+#include <errno.h>
+
+/* A trivial substitute for 'fchown'.
+
+ DJGPP 2.03 and earlier (and perhaps later) don't have 'fchown',
+ so we pretend no-one has permission for this operation. */
+
+int
+fchown (int fd, uid_t uid, gid_t gid)
+{
+ errno = EPERM;
+ return -1;
+}
diff --git a/gl/lib/fcntl.c b/gl/lib/fcntl.c
index f602fad6..51f62ef7 100644
--- a/gl/lib/fcntl.c
+++ b/gl/lib/fcntl.c
@@ -545,7 +545,7 @@ rpl_fcntl_DUPFD_CLOEXEC (int fd, int target)
#ifdef __KLIBC__
static int
-klibc_fcntl (int fd, int action, /* arg */...);
+klibc_fcntl (int fd, int action, /* arg */...)
{
va_list arg_ptr;
int arg;
diff --git a/gl/lib/file-set.c b/gl/lib/file-set.c
index 5916a178..5eb9fae3 100644
--- a/gl/lib/file-set.c
+++ b/gl/lib/file-set.c
@@ -48,7 +48,7 @@ record_file (Hash_table *ht, char const *file, struct stat const *stats)
if (ent_from_table != ent)
{
- /* There was alread a matching entry in the table, so ENT was
+ /* There was already a matching entry in the table, so ENT was
not inserted. Free it. */
triple_free (ent);
}
diff --git a/gl/lib/gettext.h b/gl/lib/gettext.h
index 89f53d91..c7c0fdb5 100644
--- a/gl/lib/gettext.h
+++ b/gl/lib/gettext.h
@@ -184,9 +184,16 @@ npgettext_aux (const char *domain,
#include <string.h>
-#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
- /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
- || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ )
+/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported.
+ This relates to the -Wvla and -Wvla-larger-than warnings, enabled in
+ the default GCC many warnings set. This allows programs to disable use
+ of VLAs, which may be unintended, or may be awkward to support portably,
+ or may have security implications due to non-deterministic stack usage. */
+
+#if (!defined GNULIB_NO_VLA \
+ && (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+ /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc)
+ || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ))
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
#else
# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
diff --git a/gl/lib/gl_anyhash1.h b/gl/lib/gl_anyhash1.h
new file mode 100644
index 00000000..e9644546
--- /dev/null
+++ b/gl/lib/gl_anyhash1.h
@@ -0,0 +1,31 @@
+/* Hash table for sequential list, set, and map data type.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of
+ gl_linkedhash_list.c, gl_avltreehash_list.c, gl_rbtreehash_list.c,
+ gl_linkedhash_set.c, gl_hash_set.c,
+ gl_linkedhash_map.c, gl_hash_map.c. */
+
+/* Hash table entry. */
+struct gl_hash_entry
+{
+ struct gl_hash_entry *hash_next; /* chain of entries in same bucket */
+ size_t hashcode; /* cache of the hash code of
+ - the key (for map data type) or
+ - the value (for list, set data types) */
+};
+typedef struct gl_hash_entry * gl_hash_entry_t;
diff --git a/gl/lib/gl_anyhash2.h b/gl/lib/gl_anyhash2.h
new file mode 100644
index 00000000..e9ccf84d
--- /dev/null
+++ b/gl/lib/gl_anyhash2.h
@@ -0,0 +1,82 @@
+/* Hash table for sequential list, set, and map data type.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of
+ gl_linkedhash_list.c, gl_avltreehash_list.c, gl_rbtreehash_list.c,
+ gl_linkedhash_set.c, gl_hash_set.c,
+ gl_linkedhash_map.c, gl_hash_map.c. */
+
+#include "gl_anyhash_primes.h"
+
+/* Resize the hash table with a new estimated size. */
+static void
+hash_resize (CONTAINER_T container, size_t estimate)
+{
+ size_t new_size = next_prime (estimate);
+
+ if (new_size > container->table_size)
+ {
+ gl_hash_entry_t *old_table = container->table;
+ /* Allocate the new table. */
+ gl_hash_entry_t *new_table;
+ size_t i;
+
+ if (size_overflow_p (xtimes (new_size, sizeof (gl_hash_entry_t))))
+ goto fail;
+ new_table =
+ (gl_hash_entry_t *) calloc (new_size, sizeof (gl_hash_entry_t));
+ if (new_table == NULL)
+ goto fail;
+
+ /* Iterate through the entries of the old table. */
+ for (i = container->table_size; i > 0; )
+ {
+ gl_hash_entry_t node = old_table[--i];
+
+ while (node != NULL)
+ {
+ gl_hash_entry_t next = node->hash_next;
+ /* Add the entry to the new table. */
+ size_t bucket = node->hashcode % new_size;
+ node->hash_next = new_table[bucket];
+ new_table[bucket] = node;
+
+ node = next;
+ }
+ }
+
+ container->table = new_table;
+ container->table_size = new_size;
+ free (old_table);
+ }
+ return;
+
+ fail:
+ /* Just continue without resizing the table. */
+ return;
+}
+
+/* Resize the hash table if needed, after CONTAINER_COUNT (container) was
+ incremented. */
+static void
+hash_resize_after_add (CONTAINER_T container)
+{
+ size_t count = CONTAINER_COUNT (container);
+ size_t estimate = xsum (count, count / 2); /* 1.5 * count */
+ if (estimate > container->table_size)
+ hash_resize (container, estimate);
+}
diff --git a/gl/lib/gl_anyhash_primes.h b/gl/lib/gl_anyhash_primes.h
new file mode 100644
index 00000000..4f80b97f
--- /dev/null
+++ b/gl/lib/gl_anyhash_primes.h
@@ -0,0 +1,87 @@
+/* Table of primes, for use by hash tables.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Array of primes, approximately in steps of factor 1.2.
+ This table was computed by executing the Common Lisp expression
+ (dotimes (i 244) (format t "nextprime(~D)~%" (ceiling (expt 1.2d0 i))))
+ and feeding the result to PARI/gp. */
+static const size_t primes[] =
+ {
+ 11, 13, 17, 19, 23, 29, 37, 41, 47, 59, 67, 83, 97, 127, 139, 167, 199,
+ 239, 293, 347, 419, 499, 593, 709, 853, 1021, 1229, 1471, 1777, 2129, 2543,
+ 3049, 3659, 4391, 5273, 6323, 7589, 9103, 10937, 13109, 15727, 18899,
+ 22651, 27179, 32609, 39133, 46957, 56359, 67619, 81157, 97369, 116849,
+ 140221, 168253, 201907, 242309, 290761, 348889, 418667, 502409, 602887,
+ 723467, 868151, 1041779, 1250141, 1500181, 1800191, 2160233, 2592277,
+ 3110741, 3732887, 4479463, 5375371, 6450413, 7740517, 9288589, 11146307,
+ 13375573, 16050689, 19260817, 23112977, 27735583, 33282701, 39939233,
+ 47927081, 57512503, 69014987, 82818011, 99381577, 119257891, 143109469,
+ 171731387, 206077643, 247293161, 296751781, 356102141, 427322587,
+ 512787097, 615344489, 738413383, 886096061, 1063315271, 1275978331,
+ 1531174013, 1837408799, 2204890543UL, 2645868653UL, 3175042391UL,
+ 3810050851UL,
+#if SIZE_MAX > 4294967295UL
+ 4572061027UL, 5486473229UL, 6583767889UL, 7900521449UL, 9480625733UL,
+ 11376750877UL, 13652101063UL, 16382521261UL, 19659025513UL, 23590830631UL,
+ 28308996763UL, 33970796089UL, 40764955463UL, 48917946377UL, 58701535657UL,
+ 70441842749UL, 84530211301UL, 101436253561UL, 121723504277UL,
+ 146068205131UL, 175281846149UL, 210338215379UL, 252405858521UL,
+ 302887030151UL, 363464436191UL, 436157323417UL, 523388788231UL,
+ 628066545713UL, 753679854847UL, 904415825857UL, 1085298991109UL,
+ 1302358789181UL, 1562830547009UL, 1875396656429UL, 2250475987709UL,
+ 2700571185239UL, 3240685422287UL, 3888822506759UL, 4666587008147UL,
+ 5599904409713UL, 6719885291641UL, 8063862349969UL, 9676634819959UL,
+ 11611961783951UL, 13934354140769UL, 16721224968907UL, 20065469962669UL,
+ 24078563955191UL, 28894276746229UL, 34673132095507UL, 41607758514593UL,
+ 49929310217531UL, 59915172260971UL, 71898206713183UL, 86277848055823UL,
+ 103533417666967UL, 124240101200359UL, 149088121440451UL, 178905745728529UL,
+ 214686894874223UL, 257624273849081UL, 309149128618903UL, 370978954342639UL,
+ 445174745211143UL, 534209694253381UL, 641051633104063UL, 769261959724877UL,
+ 923114351670013UL, 1107737222003791UL, 1329284666404567UL,
+ 1595141599685509UL, 1914169919622551UL, 2297003903547091UL,
+ 2756404684256459UL, 3307685621107757UL, 3969222745329323UL,
+ 4763067294395177UL, 5715680753274209UL, 6858816903929113UL,
+ 8230580284714831UL, 9876696341657791UL, 11852035609989371UL,
+ 14222442731987227UL, 17066931278384657UL, 20480317534061597UL,
+ 24576381040873903UL, 29491657249048679UL, 35389988698858471UL,
+ 42467986438630267UL, 50961583726356109UL, 61153900471627387UL,
+ 73384680565952851UL, 88061616679143347UL, 105673940014972061UL,
+ 126808728017966413UL, 152170473621559703UL, 182604568345871671UL,
+ 219125482015045997UL, 262950578418055169UL, 315540694101666193UL,
+ 378648832921999397UL, 454378599506399233UL, 545254319407679131UL,
+ 654305183289214771UL, 785166219947057701UL, 942199463936469157UL,
+ 1130639356723763129UL, 1356767228068515623UL, 1628120673682218619UL,
+ 1953744808418662409UL, 2344493770102394881UL, 2813392524122873857UL,
+ 3376071028947448339UL, 4051285234736937517UL, 4861542281684325481UL,
+ 5833850738021191727UL, 7000620885625427969UL, 8400745062750513217UL,
+ 10080894075300616261UL, 12097072890360739951UL, 14516487468432885797UL,
+ 17419784962119465179UL,
+#endif
+ SIZE_MAX /* sentinel, to ensure the search terminates */
+ };
+
+/* Return a suitable prime >= ESTIMATE. */
+static size_t
+next_prime (size_t estimate)
+{
+ size_t i;
+
+ for (i = 0; i < sizeof (primes) / sizeof (primes[0]); i++)
+ if (primes[i] >= estimate)
+ return primes[i];
+ return SIZE_MAX; /* not a prime, but better than nothing */
+}
diff --git a/gl/lib/gl_anylinked_list1.h b/gl/lib/gl_anylinked_list1.h
new file mode 100644
index 00000000..a12b1adc
--- /dev/null
+++ b/gl/lib/gl_anylinked_list1.h
@@ -0,0 +1,48 @@
+/* Sequential list data type implemented by a linked list.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_linked_list.c and gl_linkedhash_list.c. */
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Concrete list node implementation, valid for this file only. */
+struct gl_list_node_impl
+{
+#if WITH_HASHTABLE
+ struct gl_hash_entry h; /* hash table entry fields; must be first */
+#endif
+ struct gl_list_node_impl *next;
+ struct gl_list_node_impl *prev;
+ const void *value;
+};
+
+/* Concrete gl_list_impl type, valid for this file only. */
+struct gl_list_impl
+{
+ struct gl_list_impl_base base;
+#if WITH_HASHTABLE
+ /* A hash table: managed as an array of collision lists. */
+ struct gl_hash_entry **table;
+ size_t table_size;
+#endif
+ /* A circular list anchored at root.
+ The first node is = root.next, the last node is = root.prev.
+ The root's value is unused. */
+ struct gl_list_node_impl root;
+ /* Number of list nodes, excluding the root. */
+ size_t count;
+};
diff --git a/gl/lib/gl_anylinked_list2.h b/gl/lib/gl_anylinked_list2.h
new file mode 100644
index 00000000..dc7f2cd5
--- /dev/null
+++ b/gl/lib/gl_anylinked_list2.h
@@ -0,0 +1,1195 @@
+/* Sequential list data type implemented by a linked list.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_linked_list.c and gl_linkedhash_list.c. */
+
+/* If the symbol SIGNAL_SAFE_LIST is defined, the code is compiled in such
+ a way that a gl_list_t data structure may be used from within a signal
+ handler. The operations allowed in the signal handler are:
+ gl_list_iterator, gl_list_iterator_next, gl_list_iterator_free.
+ The list and node fields that are therefore accessed from the signal handler
+ are:
+ list->root, node->next, node->value.
+ We are careful to make modifications to these fields only in an order
+ that maintains the consistency of the list data structure at any moment,
+ and we use 'volatile' assignments to prevent the compiler from reordering
+ such assignments. */
+#ifdef SIGNAL_SAFE_LIST
+# define ASYNCSAFE(type) *(type volatile *)&
+#else
+# define ASYNCSAFE(type)
+#endif
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+static gl_list_t
+gl_linked_nx_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates)
+{
+ struct gl_list_impl *list =
+ (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+#if WITH_HASHTABLE
+ list->table_size = 11;
+ list->table =
+ (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t));
+ if (list->table == NULL)
+ goto fail;
+#endif
+ list->root.next = &list->root;
+ list->root.prev = &list->root;
+ list->count = 0;
+
+ return list;
+
+#if WITH_HASHTABLE
+ fail:
+ free (list);
+ return NULL;
+#endif
+}
+
+static gl_list_t
+gl_linked_nx_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents)
+{
+ struct gl_list_impl *list =
+ (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+ gl_list_node_t tail;
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+#if WITH_HASHTABLE
+ {
+ size_t estimate = xsum (count, count / 2); /* 1.5 * count */
+ if (estimate < 10)
+ estimate = 10;
+ list->table_size = next_prime (estimate);
+ if (size_overflow_p (xtimes (list->table_size, sizeof (gl_hash_entry_t))))
+ goto fail1;
+ list->table =
+ (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t));
+ if (list->table == NULL)
+ goto fail1;
+ }
+#endif
+ list->count = count;
+ tail = &list->root;
+ for (; count > 0; contents++, count--)
+ {
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (node == NULL)
+ goto fail2;
+
+ node->value = *contents;
+#if WITH_HASHTABLE
+ node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (node->value)
+ : (size_t)(uintptr_t) node->value);
+
+ /* Add node to the hash table. */
+ if (add_to_bucket (list, node) < 0)
+ {
+ free (node);
+ goto fail2;
+ }
+#endif
+
+ /* Add node to the list. */
+ node->prev = tail;
+ tail->next = node;
+ tail = node;
+ }
+ tail->next = &list->root;
+ list->root.prev = tail;
+
+ return list;
+
+ fail2:
+ {
+ gl_list_node_t node;
+
+ for (node = tail; node != &list->root; )
+ {
+ gl_list_node_t prev = node->prev;
+
+ free (node);
+ node = prev;
+ }
+ }
+#if WITH_HASHTABLE
+ free (list->table);
+ fail1:
+#endif
+ free (list);
+ return NULL;
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_linked_size (gl_list_t list)
+{
+ return list->count;
+}
+
+static const void * _GL_ATTRIBUTE_PURE
+gl_linked_node_value (gl_list_t list, gl_list_node_t node)
+{
+ return node->value;
+}
+
+static int
+gl_linked_node_nx_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt)
+{
+#if WITH_HASHTABLE
+ if (elt != node->value)
+ {
+ size_t new_hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+
+ if (new_hashcode != node->h.hashcode)
+ {
+ remove_from_bucket (list, node);
+ node->value = elt;
+ node->h.hashcode = new_hashcode;
+ if (add_to_bucket (list, node) < 0)
+ {
+ /* Out of memory. We removed node from a bucket but cannot add
+ it to another bucket. In order to avoid inconsistencies, we
+ must remove node entirely from the list. */
+ gl_list_node_t before_removed = node->prev;
+ gl_list_node_t after_removed = node->next;
+ ASYNCSAFE(gl_list_node_t) before_removed->next = after_removed;
+ after_removed->prev = before_removed;
+ list->count--;
+ free (node);
+ return -1;
+ }
+ }
+ else
+ node->value = elt;
+ }
+#else
+ node->value = elt;
+#endif
+ return 0;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_linked_next_node (gl_list_t list, gl_list_node_t node)
+{
+ return (node->next != &list->root ? node->next : NULL);
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_linked_previous_node (gl_list_t list, gl_list_node_t node)
+{
+ return (node->prev != &list->root ? node->prev : NULL);
+}
+
+static const void * _GL_ATTRIBUTE_PURE
+gl_linked_get_at (gl_list_t list, size_t position)
+{
+ size_t count = list->count;
+ gl_list_node_t node;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ /* Here we know count > 0. */
+ if (position <= ((count - 1) / 2))
+ {
+ node = list->root.next;
+ for (; position > 0; position--)
+ node = node->next;
+ }
+ else
+ {
+ position = count - 1 - position;
+ node = list->root.prev;
+ for (; position > 0; position--)
+ node = node->prev;
+ }
+ return node->value;
+}
+
+static gl_list_node_t
+gl_linked_nx_set_at (gl_list_t list, size_t position, const void *elt)
+{
+ size_t count = list->count;
+ gl_list_node_t node;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ /* Here we know count > 0. */
+ if (position <= ((count - 1) / 2))
+ {
+ node = list->root.next;
+ for (; position > 0; position--)
+ node = node->next;
+ }
+ else
+ {
+ position = count - 1 - position;
+ node = list->root.prev;
+ for (; position > 0; position--)
+ node = node->prev;
+ }
+#if WITH_HASHTABLE
+ if (elt != node->value)
+ {
+ size_t new_hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+
+ if (new_hashcode != node->h.hashcode)
+ {
+ remove_from_bucket (list, node);
+ node->value = elt;
+ node->h.hashcode = new_hashcode;
+ if (add_to_bucket (list, node) < 0)
+ {
+ /* Out of memory. We removed node from a bucket but cannot add
+ it to another bucket. In order to avoid inconsistencies, we
+ must remove node entirely from the list. */
+ gl_list_node_t before_removed = node->prev;
+ gl_list_node_t after_removed = node->next;
+ ASYNCSAFE(gl_list_node_t) before_removed->next = after_removed;
+ after_removed->prev = before_removed;
+ list->count--;
+ free (node);
+ return NULL;
+ }
+ }
+ else
+ node->value = elt;
+ }
+#else
+ node->value = elt;
+#endif
+ return node;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_linked_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(start_index <= end_index && end_index <= count))
+ /* Invalid arguments. */
+ abort ();
+ {
+#if WITH_HASHTABLE
+ size_t hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+ size_t bucket = hashcode % list->table_size;
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+
+ if (!list->base.allow_duplicates)
+ {
+ /* Look for the first match in the hash bucket. */
+ gl_list_node_t found = NULL;
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) list->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ {
+ found = node;
+ break;
+ }
+ if (start_index > 0)
+ /* Look whether found's index is < start_index. */
+ for (node = list->root.next; ; node = node->next)
+ {
+ if (node == found)
+ return NULL;
+ if (--start_index == 0)
+ break;
+ }
+ if (end_index < count)
+ /* Look whether found's index is >= end_index. */
+ {
+ end_index = count - end_index;
+ for (node = list->root.prev; ; node = node->prev)
+ {
+ if (node == found)
+ return NULL;
+ if (--end_index == 0)
+ break;
+ }
+ }
+ return found;
+ }
+ else
+ {
+ /* Look whether there is more than one match in the hash bucket. */
+ bool multiple_matches = false;
+ gl_list_node_t first_match = NULL;
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) list->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ {
+ if (first_match == NULL)
+ first_match = node;
+ else
+ {
+ multiple_matches = true;
+ break;
+ }
+ }
+ if (multiple_matches)
+ {
+ /* We need the match with the smallest index. But we don't have
+ a fast mapping node -> index. So we have to walk the list. */
+ end_index -= start_index;
+ node = list->root.next;
+ for (; start_index > 0; start_index--)
+ node = node->next;
+
+ for (;
+ end_index > 0;
+ node = node->next, end_index--)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ return node;
+ /* The matches must have all been at indices < start_index or
+ >= end_index. */
+ return NULL;
+ }
+ else
+ {
+ if (start_index > 0)
+ /* Look whether first_match's index is < start_index. */
+ for (node = list->root.next; node != &list->root; node = node->next)
+ {
+ if (node == first_match)
+ return NULL;
+ if (--start_index == 0)
+ break;
+ }
+ if (end_index < list->count)
+ /* Look whether first_match's index is >= end_index. */
+ {
+ end_index = list->count - end_index;
+ for (node = list->root.prev; ; node = node->prev)
+ {
+ if (node == first_match)
+ return NULL;
+ if (--end_index == 0)
+ break;
+ }
+ }
+ return first_match;
+ }
+ }
+#else
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ gl_list_node_t node = list->root.next;
+
+ end_index -= start_index;
+ for (; start_index > 0; start_index--)
+ node = node->next;
+
+ if (equals != NULL)
+ {
+ for (; end_index > 0; node = node->next, end_index--)
+ if (equals (elt, node->value))
+ return node;
+ }
+ else
+ {
+ for (; end_index > 0; node = node->next, end_index--)
+ if (elt == node->value)
+ return node;
+ }
+ return NULL;
+#endif
+ }
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_linked_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(start_index <= end_index && end_index <= count))
+ /* Invalid arguments. */
+ abort ();
+ {
+#if WITH_HASHTABLE
+ /* Here the hash table doesn't help much. It only allows us to minimize
+ the number of equals() calls, by looking up first the node and then
+ its index. */
+ size_t hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+ size_t bucket = hashcode % list->table_size;
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ gl_list_node_t node;
+
+ /* First step: Look up the node. */
+ if (!list->base.allow_duplicates)
+ {
+ /* Look for the first match in the hash bucket. */
+ for (node = (gl_list_node_t) list->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ break;
+ }
+ else
+ {
+ /* Look whether there is more than one match in the hash bucket. */
+ bool multiple_matches = false;
+ gl_list_node_t first_match = NULL;
+
+ for (node = (gl_list_node_t) list->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ {
+ if (first_match == NULL)
+ first_match = node;
+ else
+ {
+ multiple_matches = true;
+ break;
+ }
+ }
+ if (multiple_matches)
+ {
+ /* We need the match with the smallest index. But we don't have
+ a fast mapping node -> index. So we have to walk the list. */
+ size_t index;
+
+ index = start_index;
+ node = list->root.next;
+ for (; start_index > 0; start_index--)
+ node = node->next;
+
+ for (;
+ index < end_index;
+ node = node->next, index++)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ return index;
+ /* The matches must have all been at indices < start_index or
+ >= end_index. */
+ return (size_t)(-1);
+ }
+ node = first_match;
+ }
+
+ /* Second step: Look up the index of the node. */
+ if (node == NULL)
+ return (size_t)(-1);
+ else
+ {
+ size_t index = 0;
+
+ for (; node->prev != &list->root; node = node->prev)
+ index++;
+
+ if (index >= start_index && index < end_index)
+ return index;
+ else
+ return (size_t)(-1);
+ }
+#else
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ size_t index = start_index;
+ gl_list_node_t node = list->root.next;
+
+ for (; start_index > 0; start_index--)
+ node = node->next;
+
+ if (equals != NULL)
+ {
+ for (;
+ index < end_index;
+ node = node->next, index++)
+ if (equals (elt, node->value))
+ return index;
+ }
+ else
+ {
+ for (;
+ index < end_index;
+ node = node->next, index++)
+ if (elt == node->value)
+ return index;
+ }
+ return (size_t)(-1);
+#endif
+ }
+}
+
+static gl_list_node_t
+gl_linked_nx_add_first (gl_list_t list, const void *elt)
+{
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (node == NULL)
+ return NULL;
+
+ ASYNCSAFE(const void *) node->value = elt;
+#if WITH_HASHTABLE
+ node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (node->value)
+ : (size_t)(uintptr_t) node->value);
+
+ /* Add node to the hash table. */
+ if (add_to_bucket (list, node) < 0)
+ {
+ free (node);
+ return NULL;
+ }
+#endif
+
+ /* Add node to the list. */
+ node->prev = &list->root;
+ ASYNCSAFE(gl_list_node_t) node->next = list->root.next;
+ node->next->prev = node;
+ ASYNCSAFE(gl_list_node_t) list->root.next = node;
+ list->count++;
+
+#if WITH_HASHTABLE
+ hash_resize_after_add (list);
+#endif
+
+ return node;
+}
+
+static gl_list_node_t
+gl_linked_nx_add_last (gl_list_t list, const void *elt)
+{
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (node == NULL)
+ return NULL;
+
+ ASYNCSAFE(const void *) node->value = elt;
+#if WITH_HASHTABLE
+ node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (node->value)
+ : (size_t)(uintptr_t) node->value);
+
+ /* Add node to the hash table. */
+ if (add_to_bucket (list, node) < 0)
+ {
+ free (node);
+ return NULL;
+ }
+#endif
+
+ /* Add node to the list. */
+ ASYNCSAFE(gl_list_node_t) node->next = &list->root;
+ node->prev = list->root.prev;
+ ASYNCSAFE(gl_list_node_t) node->prev->next = node;
+ list->root.prev = node;
+ list->count++;
+
+#if WITH_HASHTABLE
+ hash_resize_after_add (list);
+#endif
+
+ return node;
+}
+
+static gl_list_node_t
+gl_linked_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ ASYNCSAFE(const void *) new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+
+ /* Add new_node to the hash table. */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ free (new_node);
+ return NULL;
+ }
+#endif
+
+ /* Add new_node to the list. */
+ ASYNCSAFE(gl_list_node_t) new_node->next = node;
+ new_node->prev = node->prev;
+ ASYNCSAFE(gl_list_node_t) new_node->prev->next = new_node;
+ node->prev = new_node;
+ list->count++;
+
+#if WITH_HASHTABLE
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static gl_list_node_t
+gl_linked_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ ASYNCSAFE(const void *) new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+
+ /* Add new_node to the hash table. */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ free (new_node);
+ return NULL;
+ }
+#endif
+
+ /* Add new_node to the list. */
+ new_node->prev = node;
+ ASYNCSAFE(gl_list_node_t) new_node->next = node->next;
+ new_node->next->prev = new_node;
+ ASYNCSAFE(gl_list_node_t) node->next = new_node;
+ list->count++;
+
+#if WITH_HASHTABLE
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static gl_list_node_t
+gl_linked_nx_add_at (gl_list_t list, size_t position, const void *elt)
+{
+ size_t count = list->count;
+ gl_list_node_t new_node;
+
+ if (!(position <= count))
+ /* Invalid argument. */
+ abort ();
+
+ new_node = (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+ if (new_node == NULL)
+ return NULL;
+
+ ASYNCSAFE(const void *) new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+
+ /* Add new_node to the hash table. */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ free (new_node);
+ return NULL;
+ }
+#endif
+
+ /* Add new_node to the list. */
+ if (position <= (count / 2))
+ {
+ gl_list_node_t node;
+
+ node = &list->root;
+ for (; position > 0; position--)
+ node = node->next;
+ new_node->prev = node;
+ ASYNCSAFE(gl_list_node_t) new_node->next = node->next;
+ new_node->next->prev = new_node;
+ ASYNCSAFE(gl_list_node_t) node->next = new_node;
+ }
+ else
+ {
+ gl_list_node_t node;
+
+ position = count - position;
+ node = &list->root;
+ for (; position > 0; position--)
+ node = node->prev;
+ ASYNCSAFE(gl_list_node_t) new_node->next = node;
+ new_node->prev = node->prev;
+ ASYNCSAFE(gl_list_node_t) new_node->prev->next = new_node;
+ node->prev = new_node;
+ }
+ list->count++;
+
+#if WITH_HASHTABLE
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static bool
+gl_linked_remove_node (gl_list_t list, gl_list_node_t node)
+{
+ gl_list_node_t prev;
+ gl_list_node_t next;
+
+#if WITH_HASHTABLE
+ /* Remove node from the hash table. */
+ remove_from_bucket (list, node);
+#endif
+
+ /* Remove node from the list. */
+ prev = node->prev;
+ next = node->next;
+
+ ASYNCSAFE(gl_list_node_t) prev->next = next;
+ next->prev = prev;
+ list->count--;
+
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (node->value);
+ free (node);
+ return true;
+}
+
+static bool
+gl_linked_remove_at (gl_list_t list, size_t position)
+{
+ size_t count = list->count;
+ gl_list_node_t removed_node;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ /* Here we know count > 0. */
+ if (position <= ((count - 1) / 2))
+ {
+ gl_list_node_t node;
+ gl_list_node_t after_removed;
+
+ node = &list->root;
+ for (; position > 0; position--)
+ node = node->next;
+ removed_node = node->next;
+ after_removed = node->next->next;
+ ASYNCSAFE(gl_list_node_t) node->next = after_removed;
+ after_removed->prev = node;
+ }
+ else
+ {
+ gl_list_node_t node;
+ gl_list_node_t before_removed;
+
+ position = count - 1 - position;
+ node = &list->root;
+ for (; position > 0; position--)
+ node = node->prev;
+ removed_node = node->prev;
+ before_removed = node->prev->prev;
+ node->prev = before_removed;
+ ASYNCSAFE(gl_list_node_t) before_removed->next = node;
+ }
+#if WITH_HASHTABLE
+ remove_from_bucket (list, removed_node);
+#endif
+ list->count--;
+
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (removed_node->value);
+ free (removed_node);
+ return true;
+}
+
+static bool
+gl_linked_remove (gl_list_t list, const void *elt)
+{
+ gl_list_node_t node = gl_linked_search_from_to (list, 0, list->count, elt);
+
+ if (node != NULL)
+ return gl_linked_remove_node (list, node);
+ else
+ return false;
+}
+
+static void
+gl_linked_list_free (gl_list_t list)
+{
+ gl_listelement_dispose_fn dispose = list->base.dispose_fn;
+ gl_list_node_t node;
+
+ for (node = list->root.next; node != &list->root; )
+ {
+ gl_list_node_t next = node->next;
+ if (dispose != NULL)
+ dispose (node->value);
+ free (node);
+ node = next;
+ }
+#if WITH_HASHTABLE
+ free (list->table);
+#endif
+ free (list);
+}
+
+/* --------------------- gl_list_iterator_t Data Type --------------------- */
+
+static gl_list_iterator_t
+gl_linked_iterator (gl_list_t list)
+{
+ gl_list_iterator_t result;
+
+ result.vtable = list->base.vtable;
+ result.list = list;
+ result.p = list->root.next;
+ result.q = &list->root;
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static gl_list_iterator_t
+gl_linked_iterator_from_to (gl_list_t list,
+ size_t start_index, size_t end_index)
+{
+ gl_list_iterator_t result;
+ size_t n1, n2, n3;
+
+ if (!(start_index <= end_index && end_index <= list->count))
+ /* Invalid arguments. */
+ abort ();
+ result.vtable = list->base.vtable;
+ result.list = list;
+ n1 = start_index;
+ n2 = end_index - start_index;
+ n3 = list->count - end_index;
+ /* Find the maximum among n1, n2, n3, so as to reduce the number of
+ loop iterations to n1 + n2 + n3 - max(n1,n2,n3). */
+ if (n1 > n2 && n1 > n3)
+ {
+ /* n1 is the maximum, use n2 and n3. */
+ gl_list_node_t node;
+ size_t i;
+
+ node = &list->root;
+ for (i = n3; i > 0; i--)
+ node = node->prev;
+ result.q = node;
+ for (i = n2; i > 0; i--)
+ node = node->prev;
+ result.p = node;
+ }
+ else if (n2 > n3)
+ {
+ /* n2 is the maximum, use n1 and n3. */
+ gl_list_node_t node;
+ size_t i;
+
+ node = list->root.next;
+ for (i = n1; i > 0; i--)
+ node = node->next;
+ result.p = node;
+
+ node = &list->root;
+ for (i = n3; i > 0; i--)
+ node = node->prev;
+ result.q = node;
+ }
+ else
+ {
+ /* n3 is the maximum, use n1 and n2. */
+ gl_list_node_t node;
+ size_t i;
+
+ node = list->root.next;
+ for (i = n1; i > 0; i--)
+ node = node->next;
+ result.p = node;
+ for (i = n2; i > 0; i--)
+ node = node->next;
+ result.q = node;
+ }
+
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static bool
+gl_linked_iterator_next (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep)
+{
+ if (iterator->p != iterator->q)
+ {
+ gl_list_node_t node = (gl_list_node_t) iterator->p;
+ *eltp = node->value;
+ if (nodep != NULL)
+ *nodep = node;
+ iterator->p = node->next;
+ return true;
+ }
+ else
+ return false;
+}
+
+static void
+gl_linked_iterator_free (gl_list_iterator_t *iterator)
+{
+}
+
+/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_linked_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+
+ for (node = list->root.next; node != &list->root; node = node->next)
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp > 0)
+ break;
+ if (cmp == 0)
+ return node;
+ }
+ return NULL;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_linked_sortedlist_search_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(low <= high && high <= list->count))
+ /* Invalid arguments. */
+ abort ();
+
+ high -= low;
+ if (high > 0)
+ {
+ /* Here we know low < count. */
+ size_t position = low;
+ gl_list_node_t node;
+
+ if (position <= ((count - 1) / 2))
+ {
+ node = list->root.next;
+ for (; position > 0; position--)
+ node = node->next;
+ }
+ else
+ {
+ position = count - 1 - position;
+ node = list->root.prev;
+ for (; position > 0; position--)
+ node = node->prev;
+ }
+
+ do
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp > 0)
+ break;
+ if (cmp == 0)
+ return node;
+ node = node->next;
+ }
+ while (--high > 0);
+ }
+ return NULL;
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_linked_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+ size_t index;
+
+ for (node = list->root.next, index = 0;
+ node != &list->root;
+ node = node->next, index++)
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp > 0)
+ break;
+ if (cmp == 0)
+ return index;
+ }
+ return (size_t)(-1);
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_linked_sortedlist_indexof_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(low <= high && high <= list->count))
+ /* Invalid arguments. */
+ abort ();
+
+ high -= low;
+ if (high > 0)
+ {
+ /* Here we know low < count. */
+ size_t index = low;
+ size_t position = low;
+ gl_list_node_t node;
+
+ if (position <= ((count - 1) / 2))
+ {
+ node = list->root.next;
+ for (; position > 0; position--)
+ node = node->next;
+ }
+ else
+ {
+ position = count - 1 - position;
+ node = list->root.prev;
+ for (; position > 0; position--)
+ node = node->prev;
+ }
+
+ do
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp > 0)
+ break;
+ if (cmp == 0)
+ return index;
+ node = node->next;
+ index++;
+ }
+ while (--high > 0);
+ }
+ return (size_t)(-1);
+}
+
+static gl_list_node_t
+gl_linked_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+
+ for (node = list->root.next; node != &list->root; node = node->next)
+ if (compar (node->value, elt) >= 0)
+ return gl_linked_nx_add_before (list, node, elt);
+ return gl_linked_nx_add_last (list, elt);
+}
+
+static bool
+gl_linked_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+
+ for (node = list->root.next; node != &list->root; node = node->next)
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp > 0)
+ break;
+ if (cmp == 0)
+ return gl_linked_remove_node (list, node);
+ }
+ return false;
+}
diff --git a/gl/lib/gl_anyrbtree_list1.h b/gl/lib/gl_anyrbtree_list1.h
new file mode 100644
index 00000000..29ea451e
--- /dev/null
+++ b/gl/lib/gl_anyrbtree_list1.h
@@ -0,0 +1,76 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_rbtree_list.c and gl_rbtreehash_list.c. */
+
+/* A red-black tree is a binary tree where every node is colored black or
+ red such that
+ 1. The root is black.
+ 2. No red node has a red parent.
+ Or equivalently: No red node has a red child.
+ 3. All paths from the root down to any NULL endpoint contain the same
+ number of black nodes.
+ Let's call this the "black-height" bh of the tree. It follows that every
+ such path contains exactly bh black and between 0 and bh red nodes. (The
+ extreme cases are a path containing only black nodes, and a path colored
+ alternately black-red-black-red-...-black-red.) The height of the tree
+ therefore is >= bh, <= 2*bh.
+ */
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Color of a node. */
+typedef enum color { BLACK, RED } color_t;
+
+/* Concrete list node implementation, valid for this file only. */
+struct gl_list_node_impl
+{
+#if WITH_HASHTABLE
+ struct gl_hash_entry h; /* hash table entry fields; must be first */
+#endif
+ struct gl_list_node_impl *left; /* left branch, or NULL */
+ struct gl_list_node_impl *right; /* right branch, or NULL */
+ /* Parent pointer, or NULL. The parent pointer is not needed for most
+ operations. It is needed so that a gl_list_node_t can be returned
+ without memory allocation, on which the functions gl_list_remove_node,
+ gl_list_add_before, gl_list_add_after can be implemented. */
+ struct gl_list_node_impl *parent;
+ color_t color; /* node's color */
+ size_t branch_size; /* number of nodes in this branch,
+ = branchsize(left)+branchsize(right)+1 */
+ const void *value;
+};
+
+/* Concrete gl_list_impl type, valid for this file only. */
+struct gl_list_impl
+{
+ struct gl_list_impl_base base;
+#if WITH_HASHTABLE
+ /* A hash table: managed as an array of collision lists. */
+ struct gl_hash_entry **table;
+ size_t table_size;
+#endif
+ struct gl_list_node_impl *root; /* root node or NULL */
+};
+
+/* A red-black tree of height h has a black-height bh >= ceil(h/2) and
+ therefore at least 2^ceil(h/2) - 1 elements. So, h <= 116 (because a tree
+ of height h >= 117 would have at least 2^59 - 1 elements, and because even
+ on 64-bit machines,
+ sizeof (gl_list_node_impl) * (2^59 - 1) > 2^64
+ this would exceed the address space of the machine. */
+#define MAXHEIGHT 116
diff --git a/gl/lib/gl_anyrbtree_list2.h b/gl/lib/gl_anyrbtree_list2.h
new file mode 100644
index 00000000..102d71a5
--- /dev/null
+++ b/gl/lib/gl_anyrbtree_list2.h
@@ -0,0 +1,1028 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_rbtree_list.c and gl_rbtreehash_list.c. */
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Create a subtree for count >= 1 elements.
+ Its black-height bh is passed as argument, with
+ 2^bh - 1 <= count <= 2^(bh+1) - 1. bh == 0 implies count == 1.
+ Its height is h where 2^(h-1) <= count <= 2^h - 1.
+ Return NULL upon out-of-memory. */
+static gl_list_node_t
+create_subtree_with_contents (unsigned int bh,
+ size_t count, const void **contents)
+{
+ size_t half1 = (count - 1) / 2;
+ size_t half2 = count / 2;
+ /* Note: half1 + half2 = count - 1. */
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+ if (node == NULL)
+ return NULL;
+
+ if (half1 > 0)
+ {
+ /* half1 > 0 implies count > 1, implies bh >= 1, implies
+ 2^(bh-1) - 1 <= half1 <= 2^bh - 1. */
+ node->left =
+ create_subtree_with_contents (bh - 1, half1, contents);
+ if (node->left == NULL)
+ goto fail1;
+ node->left->parent = node;
+ }
+ else
+ node->left = NULL;
+
+ node->value = contents[half1];
+
+ if (half2 > 0)
+ {
+ /* half2 > 0 implies count > 1, implies bh >= 1, implies
+ 2^(bh-1) - 1 <= half2 <= 2^bh - 1. */
+ node->right =
+ create_subtree_with_contents (bh - 1, half2, contents + half1 + 1);
+ if (node->right == NULL)
+ goto fail2;
+ node->right->parent = node;
+ }
+ else
+ node->right = NULL;
+
+ node->color = (bh == 0 ? RED : BLACK);
+
+ node->branch_size = count;
+
+ return node;
+
+ fail2:
+ if (node->left != NULL)
+ free_subtree (node->left);
+ fail1:
+ free (node);
+ return NULL;
+}
+
+static gl_list_t
+gl_tree_nx_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents)
+{
+ struct gl_list_impl *list =
+ (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+#if WITH_HASHTABLE
+ {
+ size_t estimate = xsum (count, count / 2); /* 1.5 * count */
+ if (estimate < 10)
+ estimate = 10;
+ list->table_size = next_prime (estimate);
+ if (size_overflow_p (xtimes (list->table_size, sizeof (gl_hash_entry_t))))
+ goto fail1;
+ list->table =
+ (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t));
+ if (list->table == NULL)
+ goto fail1;
+ }
+#endif
+ if (count > 0)
+ {
+ /* Assuming 2^bh - 1 <= count <= 2^(bh+1) - 2, we create a tree whose
+ upper bh levels are black, and only the partially present lowest
+ level is red. */
+ unsigned int bh;
+ {
+ size_t n;
+ for (n = count + 1, bh = 0; n > 1; n = n >> 1)
+ bh++;
+ }
+
+ list->root = create_subtree_with_contents (bh, count, contents);
+ if (list->root == NULL)
+ goto fail2;
+ list->root->parent = NULL;
+
+#if WITH_HASHTABLE
+ /* Now that the tree is built, node_position() works. Now we can
+ add the nodes to the hash table. */
+ if (add_nodes_to_buckets (list) < 0)
+ goto fail3;
+#endif
+ }
+ else
+ list->root = NULL;
+
+ return list;
+
+#if WITH_HASHTABLE
+ fail3:
+ free_subtree (list->root);
+#endif
+ fail2:
+#if WITH_HASHTABLE
+ free (list->table);
+ fail1:
+#endif
+ free (list);
+ return NULL;
+}
+
+/* Rotate left a subtree.
+
+ B D
+ / \ / \
+ A D --> B E
+ / \ / \
+ C E A C
+
+ Change the tree structure, update the branch sizes.
+ The caller must update the colors and register D as child of its parent. */
+static gl_list_node_t
+rotate_left (gl_list_node_t b_node, gl_list_node_t d_node)
+{
+ gl_list_node_t a_node = b_node->left;
+ gl_list_node_t c_node = d_node->left;
+ gl_list_node_t e_node = d_node->right;
+
+ b_node->right = c_node;
+ d_node->left = b_node;
+
+ d_node->parent = b_node->parent;
+ b_node->parent = d_node;
+ if (c_node != NULL)
+ c_node->parent = b_node;
+
+ b_node->branch_size =
+ (a_node != NULL ? a_node->branch_size : 0)
+ + 1 + (c_node != NULL ? c_node->branch_size : 0);
+ d_node->branch_size =
+ b_node->branch_size + 1 + (e_node != NULL ? e_node->branch_size : 0);
+
+ return d_node;
+}
+
+/* Rotate right a subtree.
+
+ D B
+ / \ / \
+ B E --> A D
+ / \ / \
+ A C C E
+
+ Change the tree structure, update the branch sizes.
+ The caller must update the colors and register B as child of its parent. */
+static gl_list_node_t
+rotate_right (gl_list_node_t b_node, gl_list_node_t d_node)
+{
+ gl_list_node_t a_node = b_node->left;
+ gl_list_node_t c_node = b_node->right;
+ gl_list_node_t e_node = d_node->right;
+
+ d_node->left = c_node;
+ b_node->right = d_node;
+
+ b_node->parent = d_node->parent;
+ d_node->parent = b_node;
+ if (c_node != NULL)
+ c_node->parent = d_node;
+
+ d_node->branch_size =
+ (c_node != NULL ? c_node->branch_size : 0)
+ + 1 + (e_node != NULL ? e_node->branch_size : 0);
+ b_node->branch_size =
+ (a_node != NULL ? a_node->branch_size : 0) + 1 + d_node->branch_size;
+
+ return b_node;
+}
+
+/* Ensure the tree is balanced, after an insertion operation.
+ Also assigns node->color.
+ parent is the given node's parent, known to be non-NULL. */
+static void
+rebalance_after_add (gl_list_t list, gl_list_node_t node, gl_list_node_t parent)
+{
+ for (;;)
+ {
+ /* At this point, parent = node->parent != NULL.
+ Think of node->color being RED (although node->color is not yet
+ assigned.) */
+ gl_list_node_t grandparent;
+ gl_list_node_t uncle;
+
+ if (parent->color == BLACK)
+ {
+ /* A RED color for node is acceptable. */
+ node->color = RED;
+ return;
+ }
+
+ grandparent = parent->parent;
+ /* Since parent is RED, we know that
+ grandparent is != NULL and colored BLACK. */
+
+ if (grandparent->left == parent)
+ uncle = grandparent->right;
+ else if (grandparent->right == parent)
+ uncle = grandparent->left;
+ else
+ abort ();
+
+ if (uncle != NULL && uncle->color == RED)
+ {
+ /* Change grandparent from BLACK to RED, and
+ change parent and uncle from RED to BLACK.
+ This makes it acceptable for node to be RED. */
+ node->color = RED;
+ parent->color = uncle->color = BLACK;
+ node = grandparent;
+ }
+ else
+ {
+ /* grandparent and uncle are BLACK. parent is RED. node wants
+ to be RED too.
+ In this case, recoloring is not sufficient. Need to perform
+ one or two rotations. */
+ gl_list_node_t *grandparentp;
+
+ if (grandparent->parent == NULL)
+ grandparentp = &list->root;
+ else if (grandparent->parent->left == grandparent)
+ grandparentp = &grandparent->parent->left;
+ else if (grandparent->parent->right == grandparent)
+ grandparentp = &grandparent->parent->right;
+ else
+ abort ();
+
+ if (grandparent->left == parent)
+ {
+ if (parent->right == node)
+ {
+ /* Rotation between node and parent. */
+ grandparent->left = rotate_left (parent, node);
+ node = parent;
+ parent = grandparent->left;
+ }
+ /* grandparent and uncle are BLACK. parent and node want to be
+ RED. parent = grandparent->left. node = parent->left.
+
+ grandparent parent
+ bh+1 bh+1
+ / \ / \
+ parent uncle --> node grandparent
+ bh bh bh bh
+ / \ / \
+ node C C uncle
+ bh bh bh bh
+ */
+ *grandparentp = rotate_right (parent, grandparent);
+ parent->color = BLACK;
+ node->color = grandparent->color = RED;
+ }
+ else /* grandparent->right == parent */
+ {
+ if (parent->left == node)
+ {
+ /* Rotation between node and parent. */
+ grandparent->right = rotate_right (node, parent);
+ node = parent;
+ parent = grandparent->right;
+ }
+ /* grandparent and uncle are BLACK. parent and node want to be
+ RED. parent = grandparent->right. node = parent->right.
+
+ grandparent parent
+ bh+1 bh+1
+ / \ / \
+ uncle parent --> grandparent node
+ bh bh bh bh
+ / \ / \
+ C node uncle C
+ bh bh bh bh
+ */
+ *grandparentp = rotate_left (grandparent, parent);
+ parent->color = BLACK;
+ node->color = grandparent->color = RED;
+ }
+ return;
+ }
+
+ /* Start again with a new (node, parent) pair. */
+ parent = node->parent;
+
+ if (parent == NULL)
+ {
+ /* Change node's color from RED to BLACK. This increases the
+ tree's black-height. */
+ node->color = BLACK;
+ return;
+ }
+ }
+}
+
+/* Ensure the tree is balanced, after a deletion operation.
+ CHILD was a grandchild of PARENT and is now its child. Between them,
+ a black node was removed. CHILD is also black, or NULL.
+ (CHILD can also be NULL. But PARENT is non-NULL.) */
+static void
+rebalance_after_remove (gl_list_t list, gl_list_node_t child, gl_list_node_t parent)
+{
+ for (;;)
+ {
+ /* At this point, we reduced the black-height of the CHILD subtree by 1.
+ To make up, either look for a possibility to turn a RED to a BLACK
+ node, or try to reduce the black-height tree of CHILD's sibling
+ subtree as well. */
+ gl_list_node_t *parentp;
+
+ if (parent->parent == NULL)
+ parentp = &list->root;
+ else if (parent->parent->left == parent)
+ parentp = &parent->parent->left;
+ else if (parent->parent->right == parent)
+ parentp = &parent->parent->right;
+ else
+ abort ();
+
+ if (parent->left == child)
+ {
+ gl_list_node_t sibling = parent->right;
+ /* sibling's black-height is >= 1. In particular,
+ sibling != NULL.
+
+ parent
+ / \
+ child sibling
+ bh bh+1
+ */
+
+ if (sibling->color == RED)
+ {
+ /* sibling is RED, hence parent is BLACK and sibling's children
+ are non-NULL and BLACK.
+
+ parent sibling
+ bh+2 bh+2
+ / \ / \
+ child sibling --> parent SR
+ bh bh+1 bh+1 bh+1
+ / \ / \
+ SL SR child SL
+ bh+1 bh+1 bh bh+1
+ */
+ *parentp = rotate_left (parent, sibling);
+ parent->color = RED;
+ sibling->color = BLACK;
+
+ /* Concentrate on the subtree of parent. The new sibling is
+ one of the old sibling's children, and known to be BLACK. */
+ parentp = &sibling->left;
+ sibling = parent->right;
+ }
+ /* Now we know that sibling is BLACK.
+
+ parent
+ / \
+ child sibling
+ bh bh+1
+ */
+ if (sibling->right != NULL && sibling->right->color == RED)
+ {
+ /*
+ parent sibling
+ bh+1|bh+2 bh+1|bh+2
+ / \ / \
+ child sibling --> parent SR
+ bh bh+1 bh+1 bh+1
+ / \ / \
+ SL SR child SL
+ bh bh bh bh
+ */
+ *parentp = rotate_left (parent, sibling);
+ sibling->color = parent->color;
+ parent->color = BLACK;
+ sibling->right->color = BLACK;
+ return;
+ }
+ else if (sibling->left != NULL && sibling->left->color == RED)
+ {
+ /*
+ parent parent
+ bh+1|bh+2 bh+1|bh+2
+ / \ / \
+ child sibling --> child SL
+ bh bh+1 bh bh+1
+ / \ / \
+ SL SR SLL sibling
+ bh bh bh bh
+ / \ / \
+ SLL SLR SLR SR
+ bh bh bh bh
+
+ where SLL, SLR, SR are all black.
+ */
+ parent->right = rotate_right (sibling->left, sibling);
+ /* Change sibling from BLACK to RED and SL from RED to BLACK. */
+ sibling->color = RED;
+ sibling = parent->right;
+ sibling->color = BLACK;
+
+ /* Now do as in the previous case. */
+ *parentp = rotate_left (parent, sibling);
+ sibling->color = parent->color;
+ parent->color = BLACK;
+ sibling->right->color = BLACK;
+ return;
+ }
+ else
+ {
+ if (parent->color == BLACK)
+ {
+ /* Change sibling from BLACK to RED. Then the entire
+ subtree at parent has decreased its black-height.
+ parent parent
+ bh+2 bh+1
+ / \ / \
+ child sibling --> child sibling
+ bh bh+1 bh bh
+ */
+ sibling->color = RED;
+
+ child = parent;
+ }
+ else
+ {
+ /* Change parent from RED to BLACK, but compensate by
+ changing sibling from BLACK to RED.
+ parent parent
+ bh+1 bh+1
+ / \ / \
+ child sibling --> child sibling
+ bh bh+1 bh bh
+ */
+ parent->color = BLACK;
+ sibling->color = RED;
+ return;
+ }
+ }
+ }
+ else if (parent->right == child)
+ {
+ gl_list_node_t sibling = parent->left;
+ /* sibling's black-height is >= 1. In particular,
+ sibling != NULL.
+
+ parent
+ / \
+ sibling child
+ bh+1 bh
+ */
+
+ if (sibling->color == RED)
+ {
+ /* sibling is RED, hence parent is BLACK and sibling's children
+ are non-NULL and BLACK.
+
+ parent sibling
+ bh+2 bh+2
+ / \ / \
+ sibling child --> SR parent
+ bh+1 ch bh+1 bh+1
+ / \ / \
+ SL SR SL child
+ bh+1 bh+1 bh+1 bh
+ */
+ *parentp = rotate_right (sibling, parent);
+ parent->color = RED;
+ sibling->color = BLACK;
+
+ /* Concentrate on the subtree of parent. The new sibling is
+ one of the old sibling's children, and known to be BLACK. */
+ parentp = &sibling->right;
+ sibling = parent->left;
+ }
+ /* Now we know that sibling is BLACK.
+
+ parent
+ / \
+ sibling child
+ bh+1 bh
+ */
+ if (sibling->left != NULL && sibling->left->color == RED)
+ {
+ /*
+ parent sibling
+ bh+1|bh+2 bh+1|bh+2
+ / \ / \
+ sibling child --> SL parent
+ bh+1 bh bh+1 bh+1
+ / \ / \
+ SL SR SR child
+ bh bh bh bh
+ */
+ *parentp = rotate_right (sibling, parent);
+ sibling->color = parent->color;
+ parent->color = BLACK;
+ sibling->left->color = BLACK;
+ return;
+ }
+ else if (sibling->right != NULL && sibling->right->color == RED)
+ {
+ /*
+ parent parent
+ bh+1|bh+2 bh+1|bh+2
+ / \ / \
+ sibling child --> SR child
+ bh+1 bh bh+1 bh
+ / \ / \
+ SL SR sibling SRR
+ bh bh bh bh
+ / \ / \
+ SRL SRR SL SRL
+ bh bh bh bh
+
+ where SL, SRL, SRR are all black.
+ */
+ parent->left = rotate_left (sibling, sibling->right);
+ /* Change sibling from BLACK to RED and SL from RED to BLACK. */
+ sibling->color = RED;
+ sibling = parent->left;
+ sibling->color = BLACK;
+
+ /* Now do as in the previous case. */
+ *parentp = rotate_right (sibling, parent);
+ sibling->color = parent->color;
+ parent->color = BLACK;
+ sibling->left->color = BLACK;
+ return;
+ }
+ else
+ {
+ if (parent->color == BLACK)
+ {
+ /* Change sibling from BLACK to RED. Then the entire
+ subtree at parent has decreased its black-height.
+ parent parent
+ bh+2 bh+1
+ / \ / \
+ sibling child --> sibling child
+ bh+1 bh bh bh
+ */
+ sibling->color = RED;
+
+ child = parent;
+ }
+ else
+ {
+ /* Change parent from RED to BLACK, but compensate by
+ changing sibling from BLACK to RED.
+ parent parent
+ bh+1 bh+1
+ / \ / \
+ sibling child --> sibling child
+ bh+1 bh bh bh
+ */
+ parent->color = BLACK;
+ sibling->color = RED;
+ return;
+ }
+ }
+ }
+ else
+ abort ();
+
+ /* Start again with a new (child, parent) pair. */
+ parent = child->parent;
+
+#if 0 /* Already handled. */
+ if (child != NULL && child->color == RED)
+ {
+ child->color = BLACK;
+ return;
+ }
+#endif
+
+ if (parent == NULL)
+ return;
+ }
+}
+
+static void
+gl_tree_remove_node_from_tree (gl_list_t list, gl_list_node_t node)
+{
+ gl_list_node_t parent = node->parent;
+
+ if (node->left == NULL)
+ {
+ /* Replace node with node->right. */
+ gl_list_node_t child = node->right;
+
+ if (child != NULL)
+ {
+ child->parent = parent;
+ /* Since node->left == NULL, child must be RED and of height 1,
+ hence node must have been BLACK. Recolor the child. */
+ child->color = BLACK;
+ }
+ if (parent == NULL)
+ list->root = child;
+ else
+ {
+ if (parent->left == node)
+ parent->left = child;
+ else /* parent->right == node */
+ parent->right = child;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = parent; p != NULL; p = p->parent)
+ p->branch_size--;
+ }
+
+ if (child == NULL && node->color == BLACK)
+ rebalance_after_remove (list, child, parent);
+ }
+ }
+ else if (node->right == NULL)
+ {
+ /* It is not absolutely necessary to treat this case. But the more
+ general case below is more complicated, hence slower. */
+ /* Replace node with node->left. */
+ gl_list_node_t child = node->left;
+
+ child->parent = parent;
+ /* Since node->right == NULL, child must be RED and of height 1,
+ hence node must have been BLACK. Recolor the child. */
+ child->color = BLACK;
+ if (parent == NULL)
+ list->root = child;
+ else
+ {
+ if (parent->left == node)
+ parent->left = child;
+ else /* parent->right == node */
+ parent->right = child;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = parent; p != NULL; p = p->parent)
+ p->branch_size--;
+ }
+ }
+ }
+ else
+ {
+ /* Replace node with the rightmost element of the node->left subtree. */
+ gl_list_node_t subst;
+ gl_list_node_t subst_parent;
+ gl_list_node_t child;
+ color_t removed_color;
+
+ for (subst = node->left; subst->right != NULL; )
+ subst = subst->right;
+
+ subst_parent = subst->parent;
+
+ child = subst->left;
+
+ removed_color = subst->color;
+
+ /* The case subst_parent == node is special: If we do nothing special,
+ we get confusion about node->left, subst->left and child->parent.
+ subst_parent == node
+ <==> The 'for' loop above terminated immediately.
+ <==> subst == subst_parent->left
+ [otherwise subst == subst_parent->right]
+ In this case, we would need to first set
+ child->parent = node; node->left = child;
+ and later - when we copy subst into node's position - again
+ child->parent = subst; subst->left = child;
+ Altogether a no-op. */
+ if (subst_parent != node)
+ {
+ if (child != NULL)
+ child->parent = subst_parent;
+ subst_parent->right = child;
+ }
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = subst_parent; p != NULL; p = p->parent)
+ p->branch_size--;
+ }
+
+ /* Copy subst into node's position.
+ (This is safer than to copy subst's value into node, keep node in
+ place, and free subst.) */
+ if (subst_parent != node)
+ {
+ subst->left = node->left;
+ subst->left->parent = subst;
+ }
+ subst->right = node->right;
+ subst->right->parent = subst;
+ subst->color = node->color;
+ subst->branch_size = node->branch_size;
+ subst->parent = parent;
+ if (parent == NULL)
+ list->root = subst;
+ else if (parent->left == node)
+ parent->left = subst;
+ else /* parent->right == node */
+ parent->right = subst;
+
+ if (removed_color == BLACK)
+ {
+ if (child != NULL && child->color == RED)
+ /* Recolor the child. */
+ child->color = BLACK;
+ else
+ /* Rebalancing starts at child's parent, that is subst_parent -
+ except when subst_parent == node. In this case, we need to use
+ its replacement, subst. */
+ rebalance_after_remove (list, child,
+ subst_parent != node ? subst_parent : subst);
+ }
+ }
+}
+
+static gl_list_node_t
+gl_tree_nx_add_first (gl_list_t list, const void *elt)
+{
+ /* Create new node. */
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ new_node->left = NULL;
+ new_node->right = NULL;
+ new_node->branch_size = 1;
+ new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+#endif
+
+ /* Add it to the tree. */
+ if (list->root == NULL)
+ {
+ new_node->color = BLACK;
+ list->root = new_node;
+ new_node->parent = NULL;
+ }
+ else
+ {
+ gl_list_node_t node;
+
+ for (node = list->root; node->left != NULL; )
+ node = node->left;
+
+ node->left = new_node;
+ new_node->parent = node;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = node; p != NULL; p = p->parent)
+ p->branch_size++;
+ }
+
+ /* Color and rebalance. */
+ rebalance_after_add (list, new_node, node);
+ }
+
+#if WITH_HASHTABLE
+ /* Add node to the hash table.
+ Note that this is only possible _after_ the node has been added to the
+ tree structure, because add_to_bucket() uses node_position(). */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ gl_tree_remove_node_from_tree (list, new_node);
+ free (new_node);
+ return NULL;
+ }
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static gl_list_node_t
+gl_tree_nx_add_last (gl_list_t list, const void *elt)
+{
+ /* Create new node. */
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ new_node->left = NULL;
+ new_node->right = NULL;
+ new_node->branch_size = 1;
+ new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+#endif
+
+ /* Add it to the tree. */
+ if (list->root == NULL)
+ {
+ new_node->color = BLACK;
+ list->root = new_node;
+ new_node->parent = NULL;
+ }
+ else
+ {
+ gl_list_node_t node;
+
+ for (node = list->root; node->right != NULL; )
+ node = node->right;
+
+ node->right = new_node;
+ new_node->parent = node;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = node; p != NULL; p = p->parent)
+ p->branch_size++;
+ }
+
+ /* Color and rebalance. */
+ rebalance_after_add (list, new_node, node);
+ }
+
+#if WITH_HASHTABLE
+ /* Add node to the hash table.
+ Note that this is only possible _after_ the node has been added to the
+ tree structure, because add_to_bucket() uses node_position(). */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ gl_tree_remove_node_from_tree (list, new_node);
+ free (new_node);
+ return NULL;
+ }
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static gl_list_node_t
+gl_tree_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ /* Create new node. */
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ new_node->left = NULL;
+ new_node->right = NULL;
+ new_node->branch_size = 1;
+ new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+#endif
+
+ /* Add it to the tree. */
+ if (node->left == NULL)
+ node->left = new_node;
+ else
+ {
+ for (node = node->left; node->right != NULL; )
+ node = node->right;
+ node->right = new_node;
+ }
+ new_node->parent = node;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = node; p != NULL; p = p->parent)
+ p->branch_size++;
+ }
+
+ /* Color and rebalance. */
+ rebalance_after_add (list, new_node, node);
+
+#if WITH_HASHTABLE
+ /* Add node to the hash table.
+ Note that this is only possible _after_ the node has been added to the
+ tree structure, because add_to_bucket() uses node_position(). */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ gl_tree_remove_node_from_tree (list, new_node);
+ free (new_node);
+ return NULL;
+ }
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
+
+static gl_list_node_t
+gl_tree_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ /* Create new node. */
+ gl_list_node_t new_node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (new_node == NULL)
+ return NULL;
+
+ new_node->left = NULL;
+ new_node->right = NULL;
+ new_node->branch_size = 1;
+ new_node->value = elt;
+#if WITH_HASHTABLE
+ new_node->h.hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (new_node->value)
+ : (size_t)(uintptr_t) new_node->value);
+#endif
+
+ /* Add it to the tree. */
+ if (node->right == NULL)
+ node->right = new_node;
+ else
+ {
+ for (node = node->right; node->left != NULL; )
+ node = node->left;
+ node->left = new_node;
+ }
+ new_node->parent = node;
+
+ /* Update branch_size fields of the parent nodes. */
+ {
+ gl_list_node_t p;
+
+ for (p = node; p != NULL; p = p->parent)
+ p->branch_size++;
+ }
+
+ /* Color and rebalance. */
+ rebalance_after_add (list, new_node, node);
+
+#if WITH_HASHTABLE
+ /* Add node to the hash table.
+ Note that this is only possible _after_ the node has been added to the
+ tree structure, because add_to_bucket() uses node_position(). */
+ if (add_to_bucket (list, new_node) < 0)
+ {
+ gl_tree_remove_node_from_tree (list, new_node);
+ free (new_node);
+ return NULL;
+ }
+ hash_resize_after_add (list);
+#endif
+
+ return new_node;
+}
diff --git a/gl/lib/gl_anytree_list1.h b/gl/lib/gl_anytree_list1.h
new file mode 100644
index 00000000..c0ef5677
--- /dev/null
+++ b/gl/lib/gl_anytree_list1.h
@@ -0,0 +1,41 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_avltree_list.c, gl_rbtree_list.c,
+ gl_avltreehash_list.c, gl_rbtreehash_list.c. */
+
+/* An item on the stack used for iterating across the elements. */
+typedef struct
+{
+ gl_list_node_t node;
+ size_t rightp;
+} iterstack_item_t;
+
+/* A stack used for iterating across the elements. */
+typedef iterstack_item_t iterstack_t[MAXHEIGHT];
+
+/* Free a non-empty subtree recursively.
+ This function is recursive and therefore not very fast. */
+static void
+free_subtree (gl_list_node_t node)
+{
+ if (node->left != NULL)
+ free_subtree (node->left);
+ if (node->right != NULL)
+ free_subtree (node->right);
+ free (node);
+}
diff --git a/gl/lib/gl_anytree_list2.h b/gl/lib/gl_anytree_list2.h
new file mode 100644
index 00000000..6ce41bf7
--- /dev/null
+++ b/gl/lib/gl_anytree_list2.h
@@ -0,0 +1,940 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Common code of gl_avltree_list.c, gl_rbtree_list.c,
+ gl_avltreehash_list.c, gl_rbtreehash_list.c. */
+
+static gl_list_t
+gl_tree_nx_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates)
+{
+ struct gl_list_impl *list = (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+#if WITH_HASHTABLE
+ list->table_size = 11;
+ list->table =
+ (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t));
+ if (list->table == NULL)
+ goto fail;
+#endif
+ list->root = NULL;
+
+ return list;
+
+#if WITH_HASHTABLE
+ fail:
+ free (list);
+ return NULL;
+#endif
+}
+
+static size_t
+gl_tree_size (gl_list_t list)
+{
+ return (list->root != NULL ? list->root->branch_size : 0);
+}
+
+static const void *
+gl_tree_node_value (gl_list_t list, gl_list_node_t node)
+{
+ return node->value;
+}
+
+static int
+gl_tree_node_nx_set_value (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+#if WITH_HASHTABLE
+ if (elt != node->value)
+ {
+ size_t new_hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+
+ if (new_hashcode != node->h.hashcode)
+ {
+ remove_from_bucket (list, node);
+ node->value = elt;
+ node->h.hashcode = new_hashcode;
+ if (add_to_bucket (list, node) < 0)
+ {
+ /* Out of memory. We removed node from a bucket but cannot add
+ it to another bucket. In order to avoid inconsistencies, we
+ must remove node entirely from the list. */
+ gl_tree_remove_node_from_tree (list, node);
+ free (node);
+ return -1;
+ }
+ }
+ else
+ node->value = elt;
+ }
+#else
+ node->value = elt;
+#endif
+ return 0;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_tree_next_node (gl_list_t list, gl_list_node_t node)
+{
+ if (node->right != NULL)
+ {
+ node = node->right;
+ while (node->left != NULL)
+ node = node->left;
+ }
+ else
+ {
+ while (node->parent != NULL && node->parent->right == node)
+ node = node->parent;
+ node = node->parent;
+ }
+ return node;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_tree_previous_node (gl_list_t list, gl_list_node_t node)
+{
+ if (node->left != NULL)
+ {
+ node = node->left;
+ while (node->right != NULL)
+ node = node->right;
+ }
+ else
+ {
+ while (node->parent != NULL && node->parent->left == node)
+ node = node->parent;
+ node = node->parent;
+ }
+ return node;
+}
+
+/* Return the node at the given position < gl_tree_size (list). */
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+node_at (gl_list_node_t root, size_t position)
+{
+ /* Here we know that root != NULL. */
+ gl_list_node_t node = root;
+
+ for (;;)
+ {
+ if (node->left != NULL)
+ {
+ if (position < node->left->branch_size)
+ {
+ node = node->left;
+ continue;
+ }
+ position -= node->left->branch_size;
+ }
+ if (position == 0)
+ break;
+ position--;
+ node = node->right;
+ }
+ return node;
+}
+
+static const void * _GL_ATTRIBUTE_PURE
+gl_tree_get_at (gl_list_t list, size_t position)
+{
+ gl_list_node_t node = list->root;
+
+ if (!(node != NULL && position < node->branch_size))
+ /* Invalid argument. */
+ abort ();
+ node = node_at (node, position);
+ return node->value;
+}
+
+static gl_list_node_t
+gl_tree_nx_set_at (gl_list_t list, size_t position, const void *elt)
+{
+ gl_list_node_t node = list->root;
+
+ if (!(node != NULL && position < node->branch_size))
+ /* Invalid argument. */
+ abort ();
+ node = node_at (node, position);
+#if WITH_HASHTABLE
+ if (elt != node->value)
+ {
+ size_t new_hashcode =
+ (list->base.hashcode_fn != NULL
+ ? list->base.hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+
+ if (new_hashcode != node->h.hashcode)
+ {
+ remove_from_bucket (list, node);
+ node->value = elt;
+ node->h.hashcode = new_hashcode;
+ if (add_to_bucket (list, node) < 0)
+ {
+ /* Out of memory. We removed node from a bucket but cannot add
+ it to another bucket. In order to avoid inconsistencies, we
+ must remove node entirely from the list. */
+ gl_tree_remove_node_from_tree (list, node);
+ free (node);
+ return NULL;
+ }
+ }
+ else
+ node->value = elt;
+ }
+#else
+ node->value = elt;
+#endif
+ return node;
+}
+
+#if !WITH_HASHTABLE
+
+static gl_list_node_t
+gl_tree_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ if (!(start_index <= end_index
+ && end_index <= (list->root != NULL ? list->root->branch_size : 0)))
+ /* Invalid arguments. */
+ abort ();
+ {
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ /* Iterate across all elements. */
+ gl_list_node_t node = list->root;
+ iterstack_t stack;
+ iterstack_item_t *stack_ptr = &stack[0];
+ size_t index = 0;
+
+ if (start_index == 0)
+ {
+ /* Consider all elements. */
+ for (;;)
+ {
+ /* Descend on left branch. */
+ for (;;)
+ {
+ if (node == NULL)
+ break;
+ stack_ptr->node = node;
+ stack_ptr->rightp = 0;
+ node = node->left;
+ stack_ptr++;
+ }
+ /* Climb up again. */
+ for (;;)
+ {
+ if (stack_ptr == &stack[0])
+ return NULL;
+ stack_ptr--;
+ if (!stack_ptr->rightp)
+ break;
+ }
+ node = stack_ptr->node;
+ /* Test against current element. */
+ if (equals != NULL ? equals (elt, node->value) : elt == node->value)
+ return node;
+ index++;
+ if (index >= end_index)
+ return NULL;
+ /* Descend on right branch. */
+ stack_ptr->rightp = 1;
+ node = node->right;
+ stack_ptr++;
+ }
+ }
+ else
+ {
+ /* Consider only elements at indices >= start_index.
+ In this case, rightp contains the difference between the start_index
+ for the parent node and the one for the child node (0 when the child
+ node is the parent's left child, > 0 when the child is the parent's
+ right child). */
+ for (;;)
+ {
+ /* Descend on left branch. */
+ for (;;)
+ {
+ if (node == NULL)
+ break;
+ if (node->branch_size <= start_index)
+ break;
+ stack_ptr->node = node;
+ stack_ptr->rightp = 0;
+ node = node->left;
+ stack_ptr++;
+ }
+ /* Climb up again. */
+ for (;;)
+ {
+ if (stack_ptr == &stack[0])
+ return NULL;
+ stack_ptr--;
+ if (!stack_ptr->rightp)
+ break;
+ start_index += stack_ptr->rightp;
+ }
+ node = stack_ptr->node;
+ {
+ size_t left_branch_size1 =
+ (node->left != NULL ? node->left->branch_size : 0) + 1;
+ if (start_index < left_branch_size1)
+ {
+ /* Test against current element. */
+ if (equals != NULL ? equals (elt, node->value) : elt == node->value)
+ return node;
+ /* Now that we have considered all indices < left_branch_size1,
+ we can increment start_index. */
+ start_index = left_branch_size1;
+ }
+ index++;
+ if (index >= end_index)
+ return NULL;
+ /* Descend on right branch. */
+ start_index -= left_branch_size1;
+ stack_ptr->rightp = left_branch_size1;
+ }
+ node = node->right;
+ stack_ptr++;
+ }
+ }
+ }
+}
+
+static size_t
+gl_tree_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ if (!(start_index <= end_index
+ && end_index <= (list->root != NULL ? list->root->branch_size : 0)))
+ /* Invalid arguments. */
+ abort ();
+ {
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ /* Iterate across all elements. */
+ gl_list_node_t node = list->root;
+ iterstack_t stack;
+ iterstack_item_t *stack_ptr = &stack[0];
+ size_t index = 0;
+
+ if (start_index == 0)
+ {
+ /* Consider all elements. */
+ for (;;)
+ {
+ /* Descend on left branch. */
+ for (;;)
+ {
+ if (node == NULL)
+ break;
+ stack_ptr->node = node;
+ stack_ptr->rightp = 0;
+ node = node->left;
+ stack_ptr++;
+ }
+ /* Climb up again. */
+ for (;;)
+ {
+ if (stack_ptr == &stack[0])
+ return (size_t)(-1);
+ stack_ptr--;
+ if (!stack_ptr->rightp)
+ break;
+ }
+ node = stack_ptr->node;
+ /* Test against current element. */
+ if (equals != NULL ? equals (elt, node->value) : elt == node->value)
+ return index;
+ index++;
+ if (index >= end_index)
+ return (size_t)(-1);
+ /* Descend on right branch. */
+ stack_ptr->rightp = 1;
+ node = node->right;
+ stack_ptr++;
+ }
+ }
+ else
+ {
+ /* Consider only elements at indices >= start_index.
+ In this case, rightp contains the difference between the start_index
+ for the parent node and the one for the child node (0 when the child
+ node is the parent's left child, > 0 when the child is the parent's
+ right child). */
+ for (;;)
+ {
+ /* Descend on left branch. */
+ for (;;)
+ {
+ if (node == NULL)
+ break;
+ if (node->branch_size <= start_index)
+ break;
+ stack_ptr->node = node;
+ stack_ptr->rightp = 0;
+ node = node->left;
+ stack_ptr++;
+ }
+ /* Climb up again. */
+ for (;;)
+ {
+ if (stack_ptr == &stack[0])
+ return (size_t)(-1);
+ stack_ptr--;
+ if (!stack_ptr->rightp)
+ break;
+ start_index += stack_ptr->rightp;
+ }
+ node = stack_ptr->node;
+ {
+ size_t left_branch_size1 =
+ (node->left != NULL ? node->left->branch_size : 0) + 1;
+ if (start_index < left_branch_size1)
+ {
+ /* Test against current element. */
+ if (equals != NULL ? equals (elt, node->value) : elt == node->value)
+ return index;
+ /* Now that we have considered all indices < left_branch_size1,
+ we can increment start_index. */
+ start_index = left_branch_size1;
+ }
+ index++;
+ if (index >= end_index)
+ return (size_t)(-1);
+ /* Descend on right branch. */
+ start_index -= left_branch_size1;
+ stack_ptr->rightp = left_branch_size1;
+ }
+ node = node->right;
+ stack_ptr++;
+ }
+ }
+ }
+}
+
+#endif
+
+static gl_list_node_t
+gl_tree_nx_add_at (gl_list_t list, size_t position, const void *elt)
+{
+ size_t count = (list->root != NULL ? list->root->branch_size : 0);
+
+ if (!(position <= count))
+ /* Invalid argument. */
+ abort ();
+ if (position == count)
+ return gl_tree_nx_add_last (list, elt);
+ else
+ return gl_tree_nx_add_before (list, node_at (list->root, position), elt);
+}
+
+static bool
+gl_tree_remove_node (gl_list_t list, gl_list_node_t node)
+{
+#if WITH_HASHTABLE
+ /* Remove node from the hash table.
+ Note that this is only possible _before_ the node is removed from the
+ tree structure, because remove_from_bucket() uses node_position(). */
+ remove_from_bucket (list, node);
+#endif
+
+ gl_tree_remove_node_from_tree (list, node);
+
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (node->value);
+ free (node);
+ return true;
+}
+
+static bool
+gl_tree_remove_at (gl_list_t list, size_t position)
+{
+ gl_list_node_t node = list->root;
+
+ if (!(node != NULL && position < node->branch_size))
+ /* Invalid argument. */
+ abort ();
+ node = node_at (node, position);
+ return gl_tree_remove_node (list, node);
+}
+
+static bool
+gl_tree_remove (gl_list_t list, const void *elt)
+{
+ if (list->root != NULL)
+ {
+ gl_list_node_t node =
+ gl_tree_search_from_to (list, 0, list->root->branch_size, elt);
+
+ if (node != NULL)
+ return gl_tree_remove_node (list, node);
+ }
+ return false;
+}
+
+#if !WITH_HASHTABLE
+
+static void
+gl_tree_list_free (gl_list_t list)
+{
+ /* Iterate across all elements in post-order. */
+ gl_list_node_t node = list->root;
+ iterstack_t stack;
+ iterstack_item_t *stack_ptr = &stack[0];
+
+ for (;;)
+ {
+ /* Descend on left branch. */
+ for (;;)
+ {
+ if (node == NULL)
+ break;
+ stack_ptr->node = node;
+ stack_ptr->rightp = false;
+ node = node->left;
+ stack_ptr++;
+ }
+ /* Climb up again. */
+ for (;;)
+ {
+ if (stack_ptr == &stack[0])
+ goto done_iterate;
+ stack_ptr--;
+ node = stack_ptr->node;
+ if (!stack_ptr->rightp)
+ break;
+ /* Free the current node. */
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (node->value);
+ free (node);
+ }
+ /* Descend on right branch. */
+ stack_ptr->rightp = true;
+ node = node->right;
+ stack_ptr++;
+ }
+ done_iterate:
+ free (list);
+}
+
+#endif
+
+/* --------------------- gl_list_iterator_t Data Type --------------------- */
+
+static gl_list_iterator_t
+gl_tree_iterator (gl_list_t list)
+{
+ gl_list_iterator_t result;
+ gl_list_node_t node;
+
+ result.vtable = list->base.vtable;
+ result.list = list;
+ /* Start node is the leftmost node. */
+ node = list->root;
+ if (node != NULL)
+ while (node->left != NULL)
+ node = node->left;
+ result.p = node;
+ /* End point is past the rightmost node. */
+ result.q = NULL;
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static gl_list_iterator_t
+gl_tree_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
+{
+ size_t count = (list->root != NULL ? list->root->branch_size : 0);
+ gl_list_iterator_t result;
+
+ if (!(start_index <= end_index && end_index <= count))
+ /* Invalid arguments. */
+ abort ();
+ result.vtable = list->base.vtable;
+ result.list = list;
+ /* Start node is the node at position start_index. */
+ result.p = (start_index < count ? node_at (list->root, start_index) : NULL);
+ /* End point is the node at position end_index. */
+ result.q = (end_index < count ? node_at (list->root, end_index) : NULL);
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static bool
+gl_tree_iterator_next (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep)
+{
+ if (iterator->p != iterator->q)
+ {
+ gl_list_node_t node = (gl_list_node_t) iterator->p;
+ *eltp = node->value;
+ if (nodep != NULL)
+ *nodep = node;
+ /* Advance to the next node. */
+ if (node->right != NULL)
+ {
+ node = node->right;
+ while (node->left != NULL)
+ node = node->left;
+ }
+ else
+ {
+ while (node->parent != NULL && node->parent->right == node)
+ node = node->parent;
+ node = node->parent;
+ }
+ iterator->p = node;
+ return true;
+ }
+ else
+ return false;
+}
+
+static void
+gl_tree_iterator_free (gl_list_iterator_t *iterator)
+{
+}
+
+/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
+
+static gl_list_node_t
+gl_tree_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+
+ for (node = list->root; node != NULL; )
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp < 0)
+ node = node->right;
+ else if (cmp > 0)
+ node = node->left;
+ else /* cmp == 0 */
+ {
+ /* We have an element equal to ELT. But we need the leftmost such
+ element. */
+ gl_list_node_t found = node;
+ node = node->left;
+ for (; node != NULL; )
+ {
+ int cmp2 = compar (node->value, elt);
+
+ if (cmp2 < 0)
+ node = node->right;
+ else if (cmp2 > 0)
+ /* The list was not sorted. */
+ abort ();
+ else /* cmp2 == 0 */
+ {
+ found = node;
+ node = node->left;
+ }
+ }
+ return found;
+ }
+ }
+ return NULL;
+}
+
+static gl_list_node_t
+gl_tree_sortedlist_search_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ gl_list_node_t node;
+
+ if (!(low <= high
+ && high <= (list->root != NULL ? list->root->branch_size : 0)))
+ /* Invalid arguments. */
+ abort ();
+
+ for (node = list->root; node != NULL; )
+ {
+ size_t left_branch_size =
+ (node->left != NULL ? node->left->branch_size : 0);
+
+ if (low > left_branch_size)
+ {
+ low -= left_branch_size + 1;
+ high -= left_branch_size + 1;
+ node = node->right;
+ }
+ else if (high <= left_branch_size)
+ node = node->left;
+ else
+ {
+ /* Here low <= left_branch_size < high. */
+ int cmp = compar (node->value, elt);
+
+ if (cmp < 0)
+ {
+ low = 0;
+ high -= left_branch_size + 1;
+ node = node->right;
+ }
+ else if (cmp > 0)
+ node = node->left;
+ else /* cmp == 0 */
+ {
+ /* We have an element equal to ELT. But we need the leftmost
+ such element. */
+ gl_list_node_t found = node;
+ node = node->left;
+ for (; node != NULL; )
+ {
+ size_t left_branch_size2 =
+ (node->left != NULL ? node->left->branch_size : 0);
+
+ if (low > left_branch_size2)
+ {
+ low -= left_branch_size2 + 1;
+ node = node->right;
+ }
+ else
+ {
+ /* Here low <= left_branch_size2. */
+ int cmp2 = compar (node->value, elt);
+
+ if (cmp2 < 0)
+ {
+ low = 0;
+ node = node->right;
+ }
+ else if (cmp2 > 0)
+ /* The list was not sorted. */
+ abort ();
+ else /* cmp2 == 0 */
+ {
+ found = node;
+ node = node->left;
+ }
+ }
+ }
+ return found;
+ }
+ }
+ }
+ return NULL;
+}
+
+static size_t
+gl_tree_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node;
+ size_t position;
+
+ for (node = list->root, position = 0; node != NULL; )
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp < 0)
+ {
+ if (node->left != NULL)
+ position += node->left->branch_size;
+ position++;
+ node = node->right;
+ }
+ else if (cmp > 0)
+ node = node->left;
+ else /* cmp == 0 */
+ {
+ /* We have an element equal to ELT. But we need the leftmost such
+ element. */
+ size_t found_position =
+ position + (node->left != NULL ? node->left->branch_size : 0);
+ node = node->left;
+ for (; node != NULL; )
+ {
+ int cmp2 = compar (node->value, elt);
+
+ if (cmp2 < 0)
+ {
+ if (node->left != NULL)
+ position += node->left->branch_size;
+ position++;
+ node = node->right;
+ }
+ else if (cmp2 > 0)
+ /* The list was not sorted. */
+ abort ();
+ else /* cmp2 == 0 */
+ {
+ found_position =
+ position
+ + (node->left != NULL ? node->left->branch_size : 0);
+ node = node->left;
+ }
+ }
+ return found_position;
+ }
+ }
+ return (size_t)(-1);
+}
+
+static size_t
+gl_tree_sortedlist_indexof_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ gl_list_node_t node;
+ size_t position;
+
+ if (!(low <= high
+ && high <= (list->root != NULL ? list->root->branch_size : 0)))
+ /* Invalid arguments. */
+ abort ();
+
+ for (node = list->root, position = 0; node != NULL; )
+ {
+ size_t left_branch_size =
+ (node->left != NULL ? node->left->branch_size : 0);
+
+ if (low > left_branch_size)
+ {
+ low -= left_branch_size + 1;
+ high -= left_branch_size + 1;
+ position += left_branch_size + 1;
+ node = node->right;
+ }
+ else if (high <= left_branch_size)
+ node = node->left;
+ else
+ {
+ /* Here low <= left_branch_size < high. */
+ int cmp = compar (node->value, elt);
+
+ if (cmp < 0)
+ {
+ low = 0;
+ high -= left_branch_size + 1;
+ position += left_branch_size + 1;
+ node = node->right;
+ }
+ else if (cmp > 0)
+ node = node->left;
+ else /* cmp == 0 */
+ {
+ /* We have an element equal to ELT. But we need the leftmost
+ such element. */
+ size_t found_position =
+ position + (node->left != NULL ? node->left->branch_size : 0);
+ node = node->left;
+ for (; node != NULL; )
+ {
+ size_t left_branch_size2 =
+ (node->left != NULL ? node->left->branch_size : 0);
+
+ if (low > left_branch_size2)
+ {
+ low -= left_branch_size2 + 1;
+ node = node->right;
+ }
+ else
+ {
+ /* Here low <= left_branch_size2. */
+ int cmp2 = compar (node->value, elt);
+
+ if (cmp2 < 0)
+ {
+ position += left_branch_size2 + 1;
+ node = node->right;
+ }
+ else if (cmp2 > 0)
+ /* The list was not sorted. */
+ abort ();
+ else /* cmp2 == 0 */
+ {
+ found_position = position + left_branch_size2;
+ node = node->left;
+ }
+ }
+ }
+ return found_position;
+ }
+ }
+ }
+ return (size_t)(-1);
+}
+
+static gl_list_node_t
+gl_tree_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node = list->root;
+
+ if (node == NULL)
+ return gl_tree_nx_add_first (list, elt);
+
+ for (;;)
+ {
+ int cmp = compar (node->value, elt);
+
+ if (cmp < 0)
+ {
+ if (node->right == NULL)
+ return gl_tree_nx_add_after (list, node, elt);
+ node = node->right;
+ }
+ else if (cmp > 0)
+ {
+ if (node->left == NULL)
+ return gl_tree_nx_add_before (list, node, elt);
+ node = node->left;
+ }
+ else /* cmp == 0 */
+ return gl_tree_nx_add_before (list, node, elt);
+ }
+}
+
+static bool
+gl_tree_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t node = gl_tree_sortedlist_search (list, compar, elt);
+ if (node != NULL)
+ return gl_tree_remove_node (list, node);
+ else
+ return false;
+}
diff --git a/gl/lib/gl_array_list.c b/gl/lib/gl_array_list.c
new file mode 100644
index 00000000..4ac743fd
--- /dev/null
+++ b/gl/lib/gl_array_list.c
@@ -0,0 +1,680 @@
+/* Sequential list data type implemented by an array.
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "gl_array_list.h"
+
+#include <stdlib.h>
+/* Get memcpy. */
+#include <string.h>
+
+/* Checked size_t computations. */
+#include "xsize.h"
+
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Concrete gl_list_impl type, valid for this file only. */
+struct gl_list_impl
+{
+ struct gl_list_impl_base base;
+ /* An array of ALLOCATED elements, of which the first COUNT are used.
+ 0 <= COUNT <= ALLOCATED. */
+ const void **elements;
+ size_t count;
+ size_t allocated;
+};
+
+/* struct gl_list_node_impl doesn't exist here. The pointers are actually
+ indices + 1. */
+#define INDEX_TO_NODE(index) (gl_list_node_t)(uintptr_t)(size_t)((index) + 1)
+#define NODE_TO_INDEX(node) ((uintptr_t)(node) - 1)
+
+static gl_list_t
+gl_array_nx_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates)
+{
+ struct gl_list_impl *list =
+ (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+ list->elements = NULL;
+ list->count = 0;
+ list->allocated = 0;
+
+ return list;
+}
+
+static gl_list_t
+gl_array_nx_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents)
+{
+ struct gl_list_impl *list =
+ (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl));
+
+ if (list == NULL)
+ return NULL;
+
+ list->base.vtable = implementation;
+ list->base.equals_fn = equals_fn;
+ list->base.hashcode_fn = hashcode_fn;
+ list->base.dispose_fn = dispose_fn;
+ list->base.allow_duplicates = allow_duplicates;
+ if (count > 0)
+ {
+ if (size_overflow_p (xtimes (count, sizeof (const void *))))
+ goto fail;
+ list->elements = (const void **) malloc (count * sizeof (const void *));
+ if (list->elements == NULL)
+ goto fail;
+ memcpy (list->elements, contents, count * sizeof (const void *));
+ }
+ else
+ list->elements = NULL;
+ list->count = count;
+ list->allocated = count;
+
+ return list;
+
+ fail:
+ free (list);
+ return NULL;
+}
+
+static size_t
+gl_array_size (gl_list_t list)
+{
+ return list->count;
+}
+
+static const void * _GL_ATTRIBUTE_PURE
+gl_array_node_value (gl_list_t list, gl_list_node_t node)
+{
+ uintptr_t index = NODE_TO_INDEX (node);
+ if (!(index < list->count))
+ /* Invalid argument. */
+ abort ();
+ return list->elements[index];
+}
+
+static int
+gl_array_node_nx_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt)
+{
+ uintptr_t index = NODE_TO_INDEX (node);
+ if (!(index < list->count))
+ /* Invalid argument. */
+ abort ();
+ list->elements[index] = elt;
+ return 0;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_array_next_node (gl_list_t list, gl_list_node_t node)
+{
+ uintptr_t index = NODE_TO_INDEX (node);
+ if (!(index < list->count))
+ /* Invalid argument. */
+ abort ();
+ index++;
+ if (index < list->count)
+ return INDEX_TO_NODE (index);
+ else
+ return NULL;
+}
+
+static gl_list_node_t _GL_ATTRIBUTE_PURE
+gl_array_previous_node (gl_list_t list, gl_list_node_t node)
+{
+ uintptr_t index = NODE_TO_INDEX (node);
+ if (!(index < list->count))
+ /* Invalid argument. */
+ abort ();
+ if (index > 0)
+ return INDEX_TO_NODE (index - 1);
+ else
+ return NULL;
+}
+
+static const void * _GL_ATTRIBUTE_PURE
+gl_array_get_at (gl_list_t list, size_t position)
+{
+ size_t count = list->count;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ return list->elements[position];
+}
+
+static gl_list_node_t
+gl_array_nx_set_at (gl_list_t list, size_t position, const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ list->elements[position] = elt;
+ return INDEX_TO_NODE (position);
+}
+
+static size_t
+gl_array_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ size_t count = list->count;
+
+ if (!(start_index <= end_index && end_index <= count))
+ /* Invalid arguments. */
+ abort ();
+
+ if (start_index < end_index)
+ {
+ gl_listelement_equals_fn equals = list->base.equals_fn;
+ if (equals != NULL)
+ {
+ size_t i;
+
+ for (i = start_index;;)
+ {
+ if (equals (elt, list->elements[i]))
+ return i;
+ i++;
+ if (i == end_index)
+ break;
+ }
+ }
+ else
+ {
+ size_t i;
+
+ for (i = start_index;;)
+ {
+ if (elt == list->elements[i])
+ return i;
+ i++;
+ if (i == end_index)
+ break;
+ }
+ }
+ }
+ return (size_t)(-1);
+}
+
+static gl_list_node_t
+gl_array_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ size_t index = gl_array_indexof_from_to (list, start_index, end_index, elt);
+ return INDEX_TO_NODE (index);
+}
+
+/* Ensure that list->allocated > list->count.
+ Return 0 upon success, -1 upon out-of-memory. */
+static int
+grow (gl_list_t list)
+{
+ size_t new_allocated;
+ size_t memory_size;
+ const void **memory;
+
+ new_allocated = xtimes (list->allocated, 2);
+ new_allocated = xsum (new_allocated, 1);
+ memory_size = xtimes (new_allocated, sizeof (const void *));
+ if (size_overflow_p (memory_size))
+ /* Overflow, would lead to out of memory. */
+ return -1;
+ memory = (const void **) realloc (list->elements, memory_size);
+ if (memory == NULL)
+ /* Out of memory. */
+ return -1;
+ list->elements = memory;
+ list->allocated = new_allocated;
+ return 0;
+}
+
+static gl_list_node_t
+gl_array_nx_add_first (gl_list_t list, const void *elt)
+{
+ size_t count = list->count;
+ const void **elements;
+ size_t i;
+
+ if (count == list->allocated)
+ if (grow (list) < 0)
+ return NULL;
+ elements = list->elements;
+ for (i = count; i > 0; i--)
+ elements[i] = elements[i - 1];
+ elements[0] = elt;
+ list->count = count + 1;
+ return INDEX_TO_NODE (0);
+}
+
+static gl_list_node_t
+gl_array_nx_add_last (gl_list_t list, const void *elt)
+{
+ size_t count = list->count;
+
+ if (count == list->allocated)
+ if (grow (list) < 0)
+ return NULL;
+ list->elements[count] = elt;
+ list->count = count + 1;
+ return INDEX_TO_NODE (count);
+}
+
+static gl_list_node_t
+gl_array_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ size_t count = list->count;
+ uintptr_t index = NODE_TO_INDEX (node);
+ size_t position;
+ const void **elements;
+ size_t i;
+
+ if (!(index < count))
+ /* Invalid argument. */
+ abort ();
+ position = index;
+ if (count == list->allocated)
+ if (grow (list) < 0)
+ return NULL;
+ elements = list->elements;
+ for (i = count; i > position; i--)
+ elements[i] = elements[i - 1];
+ elements[position] = elt;
+ list->count = count + 1;
+ return INDEX_TO_NODE (position);
+}
+
+static gl_list_node_t
+gl_array_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ size_t count = list->count;
+ uintptr_t index = NODE_TO_INDEX (node);
+ size_t position;
+ const void **elements;
+ size_t i;
+
+ if (!(index < count))
+ /* Invalid argument. */
+ abort ();
+ position = index + 1;
+ if (count == list->allocated)
+ if (grow (list) < 0)
+ return NULL;
+ elements = list->elements;
+ for (i = count; i > position; i--)
+ elements[i] = elements[i - 1];
+ elements[position] = elt;
+ list->count = count + 1;
+ return INDEX_TO_NODE (position);
+}
+
+static gl_list_node_t
+gl_array_nx_add_at (gl_list_t list, size_t position, const void *elt)
+{
+ size_t count = list->count;
+ const void **elements;
+ size_t i;
+
+ if (!(position <= count))
+ /* Invalid argument. */
+ abort ();
+ if (count == list->allocated)
+ if (grow (list) < 0)
+ return NULL;
+ elements = list->elements;
+ for (i = count; i > position; i--)
+ elements[i] = elements[i - 1];
+ elements[position] = elt;
+ list->count = count + 1;
+ return INDEX_TO_NODE (position);
+}
+
+static bool
+gl_array_remove_node (gl_list_t list, gl_list_node_t node)
+{
+ size_t count = list->count;
+ uintptr_t index = NODE_TO_INDEX (node);
+ size_t position;
+ const void **elements;
+ size_t i;
+
+ if (!(index < count))
+ /* Invalid argument. */
+ abort ();
+ position = index;
+ elements = list->elements;
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (elements[position]);
+ for (i = position + 1; i < count; i++)
+ elements[i - 1] = elements[i];
+ list->count = count - 1;
+ return true;
+}
+
+static bool
+gl_array_remove_at (gl_list_t list, size_t position)
+{
+ size_t count = list->count;
+ const void **elements;
+ size_t i;
+
+ if (!(position < count))
+ /* Invalid argument. */
+ abort ();
+ elements = list->elements;
+ if (list->base.dispose_fn != NULL)
+ list->base.dispose_fn (elements[position]);
+ for (i = position + 1; i < count; i++)
+ elements[i - 1] = elements[i];
+ list->count = count - 1;
+ return true;
+}
+
+static bool
+gl_array_remove (gl_list_t list, const void *elt)
+{
+ size_t position = gl_array_indexof_from_to (list, 0, list->count, elt);
+ if (position == (size_t)(-1))
+ return false;
+ else
+ return gl_array_remove_at (list, position);
+}
+
+static void
+gl_array_list_free (gl_list_t list)
+{
+ if (list->elements != NULL)
+ {
+ if (list->base.dispose_fn != NULL)
+ {
+ size_t count = list->count;
+
+ if (count > 0)
+ {
+ gl_listelement_dispose_fn dispose = list->base.dispose_fn;
+ const void **elements = list->elements;
+
+ do
+ dispose (*elements++);
+ while (--count > 0);
+ }
+ }
+ free (list->elements);
+ }
+ free (list);
+}
+
+/* --------------------- gl_list_iterator_t Data Type --------------------- */
+
+static gl_list_iterator_t
+gl_array_iterator (gl_list_t list)
+{
+ gl_list_iterator_t result;
+
+ result.vtable = list->base.vtable;
+ result.list = list;
+ result.count = list->count;
+ result.p = list->elements + 0;
+ result.q = list->elements + list->count;
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+#endif
+
+ return result;
+}
+
+static gl_list_iterator_t
+gl_array_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
+{
+ gl_list_iterator_t result;
+
+ if (!(start_index <= end_index && end_index <= list->count))
+ /* Invalid arguments. */
+ abort ();
+ result.vtable = list->base.vtable;
+ result.list = list;
+ result.count = list->count;
+ result.p = list->elements + start_index;
+ result.q = list->elements + end_index;
+#if defined GCC_LINT || defined lint
+ result.i = 0;
+ result.j = 0;
+#endif
+
+ return result;
+}
+
+static bool
+gl_array_iterator_next (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep)
+{
+ gl_list_t list = iterator->list;
+ if (iterator->count != list->count)
+ {
+ if (iterator->count != list->count + 1)
+ /* Concurrent modifications were done on the list. */
+ abort ();
+ /* The last returned element was removed. */
+ iterator->count--;
+ iterator->p = (const void **) iterator->p - 1;
+ iterator->q = (const void **) iterator->q - 1;
+ }
+ if (iterator->p < iterator->q)
+ {
+ const void **p = (const void **) iterator->p;
+ *eltp = *p;
+ if (nodep != NULL)
+ *nodep = INDEX_TO_NODE (p - list->elements);
+ iterator->p = p + 1;
+ return true;
+ }
+ else
+ return false;
+}
+
+static void
+gl_array_iterator_free (gl_list_iterator_t *iterator _GL_UNUSED)
+{
+}
+
+/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
+
+static size_t
+gl_array_sortedlist_indexof_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ if (!(low <= high && high <= list->count))
+ /* Invalid arguments. */
+ abort ();
+ if (low < high)
+ {
+ /* At each loop iteration, low < high; for indices < low the values
+ are smaller than ELT; for indices >= high the values are greater
+ than ELT. So, if the element occurs in the list, it is at
+ low <= position < high. */
+ do
+ {
+ size_t mid = low + (high - low) / 2; /* low <= mid < high */
+ int cmp = compar (list->elements[mid], elt);
+
+ if (cmp < 0)
+ low = mid + 1;
+ else if (cmp > 0)
+ high = mid;
+ else /* cmp == 0 */
+ {
+ /* We have an element equal to ELT at index MID. But we need
+ the minimal such index. */
+ high = mid;
+ /* At each loop iteration, low <= high and
+ compar (list->elements[high], elt) == 0,
+ and we know that the first occurrence of the element is at
+ low <= position <= high. */
+ while (low < high)
+ {
+ size_t mid2 = low + (high - low) / 2; /* low <= mid2 < high */
+ int cmp2 = compar (list->elements[mid2], elt);
+
+ if (cmp2 < 0)
+ low = mid2 + 1;
+ else if (cmp2 > 0)
+ /* The list was not sorted. */
+ abort ();
+ else /* cmp2 == 0 */
+ {
+ if (mid2 == low)
+ break;
+ high = mid2 - 1;
+ }
+ }
+ return low;
+ }
+ }
+ while (low < high);
+ /* Here low == high. */
+ }
+ return (size_t)(-1);
+}
+
+static size_t
+gl_array_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ return gl_array_sortedlist_indexof_from_to (list, compar, 0, list->count,
+ elt);
+}
+
+static gl_list_node_t
+gl_array_sortedlist_search_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t low, size_t high,
+ const void *elt)
+{
+ size_t index =
+ gl_array_sortedlist_indexof_from_to (list, compar, low, high, elt);
+ return INDEX_TO_NODE (index);
+}
+
+static gl_list_node_t
+gl_array_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ size_t index =
+ gl_array_sortedlist_indexof_from_to (list, compar, 0, list->count, elt);
+ return INDEX_TO_NODE (index);
+}
+
+static gl_list_node_t
+gl_array_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ size_t count = list->count;
+ size_t low = 0;
+ size_t high = count;
+
+ /* At each loop iteration, low <= high; for indices < low the values are
+ smaller than ELT; for indices >= high the values are greater than ELT. */
+ while (low < high)
+ {
+ size_t mid = low + (high - low) / 2; /* low <= mid < high */
+ int cmp = compar (list->elements[mid], elt);
+
+ if (cmp < 0)
+ low = mid + 1;
+ else if (cmp > 0)
+ high = mid;
+ else /* cmp == 0 */
+ {
+ low = mid;
+ break;
+ }
+ }
+ return gl_array_nx_add_at (list, low, elt);
+}
+
+static bool
+gl_array_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ size_t index = gl_array_sortedlist_indexof (list, compar, elt);
+ if (index == (size_t)(-1))
+ return false;
+ else
+ return gl_array_remove_at (list, index);
+}
+
+
+const struct gl_list_implementation gl_array_list_implementation =
+ {
+ gl_array_nx_create_empty,
+ gl_array_nx_create,
+ gl_array_size,
+ gl_array_node_value,
+ gl_array_node_nx_set_value,
+ gl_array_next_node,
+ gl_array_previous_node,
+ gl_array_get_at,
+ gl_array_nx_set_at,
+ gl_array_search_from_to,
+ gl_array_indexof_from_to,
+ gl_array_nx_add_first,
+ gl_array_nx_add_last,
+ gl_array_nx_add_before,
+ gl_array_nx_add_after,
+ gl_array_nx_add_at,
+ gl_array_remove_node,
+ gl_array_remove_at,
+ gl_array_remove,
+ gl_array_list_free,
+ gl_array_iterator,
+ gl_array_iterator_from_to,
+ gl_array_iterator_next,
+ gl_array_iterator_free,
+ gl_array_sortedlist_search,
+ gl_array_sortedlist_search_from_to,
+ gl_array_sortedlist_indexof,
+ gl_array_sortedlist_indexof_from_to,
+ gl_array_sortedlist_nx_add,
+ gl_array_sortedlist_remove
+ };
diff --git a/gl/lib/gl_array_list.h b/gl/lib/gl_array_list.h
new file mode 100644
index 00000000..98158feb
--- /dev/null
+++ b/gl/lib/gl_array_list.h
@@ -0,0 +1,34 @@
+/* Sequential list data type implemented by an array.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_ARRAY_LIST_H
+#define _GL_ARRAY_LIST_H
+
+#include "gl_list.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const struct gl_list_implementation gl_array_list_implementation;
+#define GL_ARRAY_LIST &gl_array_list_implementation
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_ARRAY_LIST_H */
diff --git a/gl/lib/gl_hash_map.c b/gl/lib/gl_hash_map.c
new file mode 100644
index 00000000..534b472f
--- /dev/null
+++ b/gl/lib/gl_hash_map.c
@@ -0,0 +1,337 @@
+/* Map data type implemented by a hash table.
+ Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "gl_hash_map.h"
+
+#include <stdint.h> /* for SIZE_MAX */
+#include <stdlib.h>
+
+#include "xsize.h"
+
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+/* --------------------------- gl_map_t Data Type --------------------------- */
+
+#include "gl_anyhash1.h"
+
+/* Concrete list node implementation, valid for this file only. */
+struct gl_list_node_impl
+{
+ struct gl_hash_entry h; /* hash table entry fields; must be first */
+ const void *key;
+ const void *value;
+};
+typedef struct gl_list_node_impl * gl_list_node_t;
+
+/* Concrete gl_map_impl type, valid for this file only. */
+struct gl_map_impl
+{
+ struct gl_map_impl_base base;
+ gl_mapkey_hashcode_fn hashcode_fn;
+ /* A hash table: managed as an array of collision lists. */
+ struct gl_hash_entry **table;
+ size_t table_size;
+ /* Number of hash table entries. */
+ size_t count;
+};
+
+#define CONTAINER_T gl_map_t
+#define CONTAINER_COUNT(map) (map)->count
+#include "gl_anyhash2.h"
+
+/* --------------------------- gl_map_t Data Type --------------------------- */
+
+static gl_map_t
+gl_hash_nx_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn)
+{
+ struct gl_map_impl *map =
+ (struct gl_map_impl *) malloc (sizeof (struct gl_map_impl));
+
+ if (map == NULL)
+ return NULL;
+
+ map->base.vtable = implementation;
+ map->base.equals_fn = equals_fn;
+ map->base.kdispose_fn = kdispose_fn;
+ map->base.vdispose_fn = vdispose_fn;
+ map->hashcode_fn = hashcode_fn;
+ map->table_size = 11;
+ map->table =
+ (gl_hash_entry_t *) calloc (map->table_size, sizeof (gl_hash_entry_t));
+ if (map->table == NULL)
+ goto fail;
+ map->count = 0;
+
+ return map;
+
+ fail:
+ free (map);
+ return NULL;
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_hash_size (gl_map_t map)
+{
+ return map->count;
+}
+
+static bool _GL_ATTRIBUTE_PURE
+gl_hash_search (gl_map_t map, const void *key, const void **valuep)
+{
+ size_t hashcode =
+ (map->hashcode_fn != NULL
+ ? map->hashcode_fn (key)
+ : (size_t)(uintptr_t) key);
+ size_t bucket = hashcode % map->table_size;
+ gl_mapkey_equals_fn equals = map->base.equals_fn;
+
+ /* Look for a match in the hash bucket. */
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) map->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (key, node->key)
+ : key == node->key))
+ {
+ *valuep = node->value;
+ return true;
+ }
+ return false;
+}
+
+static int
+gl_hash_nx_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep)
+{
+ size_t hashcode =
+ (map->hashcode_fn != NULL
+ ? map->hashcode_fn (key)
+ : (size_t)(uintptr_t) key);
+ size_t bucket = hashcode % map->table_size;
+ gl_mapkey_equals_fn equals = map->base.equals_fn;
+
+ /* Look for a match in the hash bucket. */
+ {
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) map->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (key, node->key)
+ : key == node->key))
+ {
+ *oldvaluep = node->value;
+ node->value = value;
+ return 0;
+ }
+ }
+
+ /* Allocate a new node. */
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (node == NULL)
+ return -1;
+
+ node->key = key;
+ node->value = value;
+ node->h.hashcode = hashcode;
+
+ /* Add node to the hash table. */
+ node->h.hash_next = map->table[bucket];
+ map->table[bucket] = &node->h;
+
+ /* Add node to the map. */
+ map->count++;
+
+ hash_resize_after_add (map);
+
+ return 1;
+}
+
+static bool
+gl_hash_getremove (gl_map_t map, const void *key, const void **oldvaluep)
+{
+ size_t hashcode =
+ (map->hashcode_fn != NULL
+ ? map->hashcode_fn (key)
+ : (size_t)(uintptr_t) key);
+ size_t bucket = hashcode % map->table_size;
+ gl_mapkey_equals_fn equals = map->base.equals_fn;
+
+ /* Look for the first match in the hash bucket. */
+ gl_list_node_t *nodep;
+
+ for (nodep = (gl_list_node_t *) &map->table[bucket];
+ *nodep != NULL;
+ nodep = (gl_list_node_t *) &(*nodep)->h.hash_next)
+ {
+ gl_list_node_t node = *nodep;
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (key, node->key)
+ : key == node->key))
+ {
+ *oldvaluep = node->value;
+
+ /* Remove node from the hash table. */
+ *nodep = (gl_list_node_t) node->h.hash_next;
+
+ /* Remove node from the map. */
+ map->count--;
+
+ if (map->base.kdispose_fn != NULL)
+ map->base.kdispose_fn (node->key);
+ free (node);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static void
+gl_hash_free (gl_map_t map)
+{
+ if (map->count > 0)
+ {
+ gl_mapkey_dispose_fn kdispose = map->base.kdispose_fn;
+ gl_mapvalue_dispose_fn vdispose = map->base.vdispose_fn;
+ struct gl_hash_entry **table = map->table;
+ size_t i;
+
+ for (i = map->table_size; i > 0; )
+ {
+ gl_hash_entry_t node = table[--i];
+
+ while (node != NULL)
+ {
+ gl_hash_entry_t next = node->hash_next;
+
+ /* Free the entry. */
+ if (vdispose != NULL)
+ vdispose (((gl_list_node_t) node)->value);
+ if (kdispose != NULL)
+ kdispose (((gl_list_node_t) node)->key);
+ free (node);
+
+ node = next;
+ }
+ }
+ }
+
+ free (map->table);
+ free (map);
+}
+
+/* ---------------------- gl_map_iterator_t Data Type ---------------------- */
+
+/* Here we iterate through the hash buckets. Therefore the order in which the
+ pairs are returned is unpredictable. */
+
+static gl_map_iterator_t
+gl_hash_iterator (gl_map_t map)
+{
+ gl_map_iterator_t result;
+
+ result.vtable = map->base.vtable;
+ result.map = map;
+ result.p = NULL; /* runs through the nodes of a bucket */
+ result.i = 0; /* index of the bucket that p points into + 1 */
+ result.j = map->table_size;
+#if defined GCC_LINT || defined lint
+ result.q = NULL;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static bool
+gl_hash_iterator_next (gl_map_iterator_t *iterator,
+ const void **keyp, const void **valuep)
+{
+ if (iterator->p != NULL)
+ {
+ /* We're traversing a bucket. */
+ gl_list_node_t node = (gl_list_node_t) iterator->p;
+ *keyp = node->key;
+ *valuep = node->value;
+ iterator->p = (gl_list_node_t) node->h.hash_next;
+ return true;
+ }
+ else
+ {
+ /* Find the next bucket that is not empty. */
+ size_t j = iterator->j;
+ size_t i = iterator->i;
+
+ if (i < j)
+ {
+ gl_hash_entry_t *table = iterator->map->table;
+ do
+ {
+ gl_list_node_t node = (gl_list_node_t) table[i++];
+ if (node != NULL)
+ {
+ *keyp = node->key;
+ *valuep = node->value;
+ iterator->p = (gl_list_node_t) node->h.hash_next;
+ iterator->i = i;
+ return true;
+ }
+ }
+ while (i < j);
+ }
+ /* Here iterator->p is still NULL, and i == j. */
+ iterator->i = j;
+ return false;
+ }
+}
+
+static void
+gl_hash_iterator_free (gl_map_iterator_t *iterator)
+{
+}
+
+
+const struct gl_map_implementation gl_hash_map_implementation =
+ {
+ gl_hash_nx_create_empty,
+ gl_hash_size,
+ gl_hash_search,
+ gl_hash_nx_getput,
+ gl_hash_getremove,
+ gl_hash_free,
+ gl_hash_iterator,
+ gl_hash_iterator_next,
+ gl_hash_iterator_free
+ };
diff --git a/gl/lib/gl_hash_map.h b/gl/lib/gl_hash_map.h
new file mode 100644
index 00000000..9f539f93
--- /dev/null
+++ b/gl/lib/gl_hash_map.h
@@ -0,0 +1,34 @@
+/* Map data type implemented by a hash table.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_HASH_MAP_H
+#define _GL_HASH_MAP_H
+
+#include "gl_map.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const struct gl_map_implementation gl_hash_map_implementation;
+#define GL_HASH_MAP &gl_hash_map_implementation
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_HASH_MAP_H */
diff --git a/gl/lib/gl_hash_set.c b/gl/lib/gl_hash_set.c
new file mode 100644
index 00000000..303d1375
--- /dev/null
+++ b/gl/lib/gl_hash_set.c
@@ -0,0 +1,317 @@
+/* Set data type implemented by a hash table.
+ Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "gl_hash_set.h"
+
+#include <stdint.h> /* for SIZE_MAX */
+#include <stdlib.h>
+
+#include "xsize.h"
+
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+/* --------------------------- gl_set_t Data Type --------------------------- */
+
+#include "gl_anyhash1.h"
+
+/* Concrete list node implementation, valid for this file only. */
+struct gl_list_node_impl
+{
+ struct gl_hash_entry h; /* hash table entry fields; must be first */
+ const void *value;
+};
+typedef struct gl_list_node_impl * gl_list_node_t;
+
+/* Concrete gl_set_impl type, valid for this file only. */
+struct gl_set_impl
+{
+ struct gl_set_impl_base base;
+ gl_setelement_hashcode_fn hashcode_fn;
+ /* A hash table: managed as an array of collision lists. */
+ struct gl_hash_entry **table;
+ size_t table_size;
+ /* Number of hash table entries. */
+ size_t count;
+};
+
+#define CONTAINER_T gl_set_t
+#define CONTAINER_COUNT(set) (set)->count
+#include "gl_anyhash2.h"
+
+/* --------------------------- gl_set_t Data Type --------------------------- */
+
+static gl_set_t
+gl_hash_nx_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn)
+{
+ struct gl_set_impl *set =
+ (struct gl_set_impl *) malloc (sizeof (struct gl_set_impl));
+
+ if (set == NULL)
+ return NULL;
+
+ set->base.vtable = implementation;
+ set->base.equals_fn = equals_fn;
+ set->base.dispose_fn = dispose_fn;
+ set->hashcode_fn = hashcode_fn;
+ set->table_size = 11;
+ set->table =
+ (gl_hash_entry_t *) calloc (set->table_size, sizeof (gl_hash_entry_t));
+ if (set->table == NULL)
+ goto fail;
+ set->count = 0;
+
+ return set;
+
+ fail:
+ free (set);
+ return NULL;
+}
+
+static size_t _GL_ATTRIBUTE_PURE
+gl_hash_size (gl_set_t set)
+{
+ return set->count;
+}
+
+static bool _GL_ATTRIBUTE_PURE
+gl_hash_search (gl_set_t set, const void *elt)
+{
+ size_t hashcode =
+ (set->hashcode_fn != NULL
+ ? set->hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+ size_t bucket = hashcode % set->table_size;
+ gl_setelement_equals_fn equals = set->base.equals_fn;
+
+ /* Look for a match in the hash bucket. */
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) set->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ return true;
+ return false;
+}
+
+static int
+gl_hash_nx_add (gl_set_t set, const void *elt)
+{
+ size_t hashcode =
+ (set->hashcode_fn != NULL
+ ? set->hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+ size_t bucket = hashcode % set->table_size;
+ gl_setelement_equals_fn equals = set->base.equals_fn;
+
+ /* Look for a match in the hash bucket. */
+ {
+ gl_list_node_t node;
+
+ for (node = (gl_list_node_t) set->table[bucket];
+ node != NULL;
+ node = (gl_list_node_t) node->h.hash_next)
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ return 0;
+ }
+
+ /* Allocate a new node. */
+ gl_list_node_t node =
+ (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl));
+
+ if (node == NULL)
+ return -1;
+
+ node->value = elt;
+ node->h.hashcode = hashcode;
+
+ /* Add node to the hash table. */
+ node->h.hash_next = set->table[bucket];
+ set->table[bucket] = &node->h;
+
+ /* Add node to the set. */
+ set->count++;
+
+ hash_resize_after_add (set);
+
+ return 1;
+}
+
+static bool
+gl_hash_remove (gl_set_t set, const void *elt)
+{
+ size_t hashcode =
+ (set->hashcode_fn != NULL
+ ? set->hashcode_fn (elt)
+ : (size_t)(uintptr_t) elt);
+ size_t bucket = hashcode % set->table_size;
+ gl_setelement_equals_fn equals = set->base.equals_fn;
+
+ /* Look for the first match in the hash bucket. */
+ gl_list_node_t *nodep;
+
+ for (nodep = (gl_list_node_t *) &set->table[bucket];
+ *nodep != NULL;
+ nodep = (gl_list_node_t *) &(*nodep)->h.hash_next)
+ {
+ gl_list_node_t node = *nodep;
+ if (node->h.hashcode == hashcode
+ && (equals != NULL
+ ? equals (elt, node->value)
+ : elt == node->value))
+ {
+ /* Remove node from the hash table. */
+ *nodep = (gl_list_node_t) node->h.hash_next;
+
+ /* Remove node from the set. */
+ set->count--;
+
+ if (set->base.dispose_fn != NULL)
+ set->base.dispose_fn (node->value);
+ free (node);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+static void
+gl_hash_free (gl_set_t set)
+{
+ if (set->count > 0)
+ {
+ gl_setelement_dispose_fn dispose = set->base.dispose_fn;
+ struct gl_hash_entry **table = set->table;
+ size_t i;
+
+ for (i = set->table_size; i > 0; )
+ {
+ gl_hash_entry_t node = table[--i];
+
+ while (node != NULL)
+ {
+ gl_hash_entry_t next = node->hash_next;
+
+ /* Free the entry. */
+ if (dispose != NULL)
+ dispose (((gl_list_node_t) node)->value);
+ free (node);
+
+ node = next;
+ }
+ }
+ }
+
+ free (set->table);
+ free (set);
+}
+
+/* ---------------------- gl_set_iterator_t Data Type ---------------------- */
+
+/* Here we iterate through the hash buckets. Therefore the order in which the
+ elements are returned is unpredictable. */
+
+static gl_set_iterator_t
+gl_hash_iterator (gl_set_t set)
+{
+ gl_set_iterator_t result;
+
+ result.vtable = set->base.vtable;
+ result.set = set;
+ result.p = NULL; /* runs through the nodes of a bucket */
+ result.i = 0; /* index of the bucket that p points into + 1 */
+ result.j = set->table_size;
+#if defined GCC_LINT || defined lint
+ result.q = NULL;
+ result.count = 0;
+#endif
+
+ return result;
+}
+
+static bool
+gl_hash_iterator_next (gl_set_iterator_t *iterator, const void **eltp)
+{
+ if (iterator->p != NULL)
+ {
+ /* We're traversing a bucket. */
+ gl_list_node_t node = (gl_list_node_t) iterator->p;
+ *eltp = node->value;
+ iterator->p = (gl_list_node_t) node->h.hash_next;
+ return true;
+ }
+ else
+ {
+ /* Find the next bucket that is not empty. */
+ size_t j = iterator->j;
+ size_t i = iterator->i;
+
+ if (i < j)
+ {
+ gl_hash_entry_t *table = iterator->set->table;
+ do
+ {
+ gl_list_node_t node = (gl_list_node_t) table[i++];
+ if (node != NULL)
+ {
+ *eltp = node->value;
+ iterator->p = (gl_list_node_t) node->h.hash_next;
+ iterator->i = i;
+ return true;
+ }
+ }
+ while (i < j);
+ }
+ /* Here iterator->p is still NULL, and i == j. */
+ iterator->i = j;
+ return false;
+ }
+}
+
+static void
+gl_hash_iterator_free (gl_set_iterator_t *iterator)
+{
+}
+
+
+const struct gl_set_implementation gl_hash_set_implementation =
+ {
+ gl_hash_nx_create_empty,
+ gl_hash_size,
+ gl_hash_search,
+ gl_hash_nx_add,
+ gl_hash_remove,
+ gl_hash_free,
+ gl_hash_iterator,
+ gl_hash_iterator_next,
+ gl_hash_iterator_free
+ };
diff --git a/gl/lib/gl_hash_set.h b/gl/lib/gl_hash_set.h
new file mode 100644
index 00000000..b59aaa58
--- /dev/null
+++ b/gl/lib/gl_hash_set.h
@@ -0,0 +1,34 @@
+/* Set data type implemented by a hash table.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_HASH_SET_H
+#define _GL_HASH_SET_H
+
+#include "gl_set.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const struct gl_set_implementation gl_hash_set_implementation;
+#define GL_HASH_SET &gl_hash_set_implementation
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_HASH_SET_H */
diff --git a/gl/lib/gl_linkedhash_list.c b/gl/lib/gl_linkedhash_list.c
new file mode 100644
index 00000000..efe4996b
--- /dev/null
+++ b/gl/lib/gl_linkedhash_list.c
@@ -0,0 +1,116 @@
+/* Sequential list data type implemented by a hash table with a linked list.
+ Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "gl_linkedhash_list.h"
+
+#include <stdint.h> /* for SIZE_MAX */
+#include <stdlib.h>
+
+#include "xsize.h"
+
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+#define WITH_HASHTABLE 1
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Generic hash-table code. */
+#include "gl_anyhash1.h"
+
+/* Generic linked list code. */
+#include "gl_anylinked_list1.h"
+
+/* Generic hash-table code. */
+#define CONTAINER_T gl_list_t
+#define CONTAINER_COUNT(list) (list)->count
+#include "gl_anyhash2.h"
+
+/* Add a node to the hash table structure. */
+static void
+add_to_bucket (gl_list_t list, gl_list_node_t node)
+{
+ size_t bucket = node->h.hashcode % list->table_size;
+
+ node->h.hash_next = list->table[bucket];
+ list->table[bucket] = &node->h;
+}
+/* Tell all compilers that the return value is 0. */
+#define add_to_bucket(list,node) ((add_to_bucket) (list, node), 0)
+
+/* Remove a node from the hash table structure. */
+static void
+remove_from_bucket (gl_list_t list, gl_list_node_t node)
+{
+ size_t bucket = node->h.hashcode % list->table_size;
+ gl_hash_entry_t *p;
+
+ for (p = &list->table[bucket]; ; p = &(*p)->hash_next)
+ {
+ if (*p == &node->h)
+ {
+ *p = node->h.hash_next;
+ break;
+ }
+ if (*p == NULL)
+ /* node is not in the right bucket. Did the hash codes
+ change inadvertently? */
+ abort ();
+ }
+}
+
+/* Generic linked list code. */
+#include "gl_anylinked_list2.h"
+
+
+const struct gl_list_implementation gl_linkedhash_list_implementation =
+ {
+ gl_linked_nx_create_empty,
+ gl_linked_nx_create,
+ gl_linked_size,
+ gl_linked_node_value,
+ gl_linked_node_nx_set_value,
+ gl_linked_next_node,
+ gl_linked_previous_node,
+ gl_linked_get_at,
+ gl_linked_nx_set_at,
+ gl_linked_search_from_to,
+ gl_linked_indexof_from_to,
+ gl_linked_nx_add_first,
+ gl_linked_nx_add_last,
+ gl_linked_nx_add_before,
+ gl_linked_nx_add_after,
+ gl_linked_nx_add_at,
+ gl_linked_remove_node,
+ gl_linked_remove_at,
+ gl_linked_remove,
+ gl_linked_list_free,
+ gl_linked_iterator,
+ gl_linked_iterator_from_to,
+ gl_linked_iterator_next,
+ gl_linked_iterator_free,
+ gl_linked_sortedlist_search,
+ gl_linked_sortedlist_search_from_to,
+ gl_linked_sortedlist_indexof,
+ gl_linked_sortedlist_indexof_from_to,
+ gl_linked_sortedlist_nx_add,
+ gl_linked_sortedlist_remove
+ };
diff --git a/gl/lib/gl_linkedhash_list.h b/gl/lib/gl_linkedhash_list.h
new file mode 100644
index 00000000..3477f32b
--- /dev/null
+++ b/gl/lib/gl_linkedhash_list.h
@@ -0,0 +1,34 @@
+/* Sequential list data type implemented by a hash table with a linked list.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_LINKEDHASH_LIST_H
+#define _GL_LINKEDHASH_LIST_H
+
+#include "gl_list.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const struct gl_list_implementation gl_linkedhash_list_implementation;
+#define GL_LINKEDHASH_LIST &gl_linkedhash_list_implementation
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_LINKEDHASH_LIST_H */
diff --git a/gl/lib/gl_list.c b/gl/lib/gl_list.c
new file mode 100644
index 00000000..87932980
--- /dev/null
+++ b/gl/lib/gl_list.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_LIST_INLINE _GL_EXTERN_INLINE
+#include "gl_list.h"
diff --git a/gl/lib/gl_list.h b/gl/lib/gl_list.h
new file mode 100644
index 00000000..5f2cade2
--- /dev/null
+++ b/gl/lib/gl_list.h
@@ -0,0 +1,843 @@
+/* Abstract sequential list data type. -*- coding: utf-8 -*-
+ Copyright (C) 2006-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_LIST_H
+#define _GL_LIST_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_LIST_INLINE
+# define GL_LIST_INLINE _GL_INLINE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* gl_list is an abstract list data type. It can contain any number of
+ objects ('void *' or 'const void *' pointers) in any given order.
+ Duplicates are allowed, but can optionally be forbidden.
+
+ There are several implementations of this list datatype, optimized for
+ different operations or for memory. You can start using the simplest list
+ implementation, GL_ARRAY_LIST, and switch to a different implementation
+ later, when you realize which operations are performed the most frequently.
+ The API of the different implementations is exactly the same; when
+ switching to a different implementation, you only have to change the
+ gl_list_create call.
+
+ The implementations are:
+ GL_ARRAY_LIST a growable array
+ GL_CARRAY_LIST a growable circular array
+ GL_LINKED_LIST a linked list
+ GL_AVLTREE_LIST a binary tree (AVL tree)
+ GL_RBTREE_LIST a binary tree (red-black tree)
+ GL_LINKEDHASH_LIST a hash table with a linked list
+ GL_AVLTREEHASH_LIST a hash table with a binary tree (AVL tree)
+ GL_RBTREEHASH_LIST a hash table with a binary tree (red-black tree)
+
+ The memory consumption is asymptotically the same: O(1) for every object
+ in the list. When looking more closely at the average memory consumed
+ for an object, GL_ARRAY_LIST is the most compact representation, and
+ GL_LINKEDHASH_LIST and GL_TREEHASH_LIST need more memory.
+
+ The guaranteed average performance of the operations is, for a list of
+ n elements:
+
+ Operation ARRAY LINKED TREE LINKEDHASH TREEHASH
+ CARRAY with|without with|without
+ duplicates duplicates
+
+ gl_list_size O(1) O(1) O(1) O(1) O(1)
+ gl_list_node_value O(1) O(1) O(1) O(1) O(1)
+ gl_list_node_set_value O(1) O(1) O(1) O(1) O((log n)²)/O(1)
+ gl_list_next_node O(1) O(1) O(log n) O(1) O(log n)
+ gl_list_previous_node O(1) O(1) O(log n) O(1) O(log n)
+ gl_list_get_at O(1) O(n) O(log n) O(n) O(log n)
+ gl_list_set_at O(1) O(n) O(log n) O(n) O((log n)²)/O(log n)
+ gl_list_search O(n) O(n) O(n) O(n)/O(1) O(log n)/O(1)
+ gl_list_search_from O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n)
+ gl_list_search_from_to O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n)
+ gl_list_indexof O(n) O(n) O(n) O(n) O(log n)
+ gl_list_indexof_from O(n) O(n) O(n) O(n) O((log n)²)/O(log n)
+ gl_list_indexof_from_to O(n) O(n) O(n) O(n) O((log n)²)/O(log n)
+ gl_list_add_first O(n)/O(1) O(1) O(log n) O(1) O((log n)²)/O(log n)
+ gl_list_add_last O(1) O(1) O(log n) O(1) O((log n)²)/O(log n)
+ gl_list_add_before O(n) O(1) O(log n) O(1) O((log n)²)/O(log n)
+ gl_list_add_after O(n) O(1) O(log n) O(1) O((log n)²)/O(log n)
+ gl_list_add_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n)
+ gl_list_remove_node O(n) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n)
+ gl_list_remove_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n)
+ gl_list_remove O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n)
+ gl_list_iterator O(1) O(1) O(log n) O(1) O(log n)
+ gl_list_iterator_from_to O(1) O(n) O(log n) O(n) O(log n)
+ gl_list_iterator_next O(1) O(1) O(log n) O(1) O(log n)
+ gl_sortedlist_search O(log n) O(n) O(log n) O(n) O(log n)
+ gl_sortedlist_search_from O(log n) O(n) O(log n) O(n) O(log n)
+ gl_sortedlist_indexof O(log n) O(n) O(log n) O(n) O(log n)
+ gl_sortedlist_indexof_fro O(log n) O(n) O(log n) O(n) O(log n)
+ gl_sortedlist_add O(n) O(n) O(log n) O(n) O((log n)²)/O(log n)
+ gl_sortedlist_remove O(n) O(n) O(log n) O(n) O((log n)²)/O(log n)
+ */
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Type of function used to compare two elements.
+ NULL denotes pointer comparison. */
+typedef bool (*gl_listelement_equals_fn) (const void *elt1, const void *elt2);
+
+/* Type of function used to compute a hash code.
+ NULL denotes a function that depends only on the pointer itself. */
+typedef size_t (*gl_listelement_hashcode_fn) (const void *elt);
+
+/* Type of function used to dispose an element once it's removed from a list.
+ NULL denotes a no-op. */
+typedef void (*gl_listelement_dispose_fn) (const void *elt);
+
+struct gl_list_impl;
+/* Type representing an entire list. */
+typedef struct gl_list_impl * gl_list_t;
+
+struct gl_list_node_impl;
+/* Type representing the position of an element in the list, in a way that
+ is more adapted to the list implementation than a plain index.
+ Note: It is invalidated by insertions and removals! */
+typedef struct gl_list_node_impl * gl_list_node_t;
+
+struct gl_list_implementation;
+/* Type representing a list datatype implementation. */
+typedef const struct gl_list_implementation * gl_list_implementation_t;
+
+#if 0 /* Unless otherwise specified, these are defined inline below. */
+
+/* Create an empty list.
+ IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST,
+ GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST,
+ GL_RBTREEHASH_LIST.
+ EQUALS_FN is an element comparison function or NULL.
+ HASHCODE_FN is an element hash code function or NULL.
+ DISPOSE_FN is an element disposal function or NULL.
+ ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in
+ the list. The implementation may verify this at runtime. */
+/* declared in gl_xlist.h */
+extern gl_list_t gl_list_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_t gl_list_nx_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates);
+
+/* Create a list with given contents.
+ IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST,
+ GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST,
+ GL_RBTREEHASH_LIST.
+ EQUALS_FN is an element comparison function or NULL.
+ HASHCODE_FN is an element hash code function or NULL.
+ DISPOSE_FN is an element disposal function or NULL.
+ ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in
+ the list. The implementation may verify this at runtime.
+ COUNT is the number of initial elements.
+ CONTENTS[0..COUNT-1] is the initial contents. */
+/* declared in gl_xlist.h */
+extern gl_list_t gl_list_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_t gl_list_nx_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents);
+
+/* Return the current number of elements in a list. */
+extern size_t gl_list_size (gl_list_t list);
+
+/* Return the element value represented by a list node. */
+extern const void * gl_list_node_value (gl_list_t list, gl_list_node_t node);
+
+/* Replace the element value represented by a list node. */
+/* declared in gl_xlist.h */
+extern void gl_list_node_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+/* Likewise. Return 0 upon success, -1 upon out-of-memory. */
+extern int gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Return the node immediately after the given node in the list, or NULL
+ if the given node is the last (rightmost) one in the list. */
+extern gl_list_node_t gl_list_next_node (gl_list_t list, gl_list_node_t node);
+
+/* Return the node immediately before the given node in the list, or NULL
+ if the given node is the first (leftmost) one in the list. */
+extern gl_list_node_t gl_list_previous_node (gl_list_t list, gl_list_node_t node);
+
+/* Return the element at a given position in the list.
+ POSITION must be >= 0 and < gl_list_size (list). */
+extern const void * gl_list_get_at (gl_list_t list, size_t position);
+
+/* Replace the element at a given position in the list.
+ POSITION must be >= 0 and < gl_list_size (list).
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_set_at (gl_list_t list, size_t position,
+ const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_set_at (gl_list_t list, size_t position,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Search whether an element is already in the list.
+ Return its node if found, or NULL if not present in the list. */
+extern gl_list_node_t gl_list_search (gl_list_t list, const void *elt);
+
+/* Search whether an element is already in the list,
+ at a position >= START_INDEX.
+ Return its node if found, or NULL if not present in the list. */
+extern gl_list_node_t gl_list_search_from (gl_list_t list, size_t start_index,
+ const void *elt);
+
+/* Search whether an element is already in the list,
+ at a position >= START_INDEX and < END_INDEX.
+ Return its node if found, or NULL if not present in the list. */
+extern gl_list_node_t gl_list_search_from_to (gl_list_t list,
+ size_t start_index,
+ size_t end_index,
+ const void *elt);
+
+/* Search whether an element is already in the list.
+ Return its position if found, or (size_t)(-1) if not present in the list. */
+extern size_t gl_list_indexof (gl_list_t list, const void *elt);
+
+/* Search whether an element is already in the list,
+ at a position >= START_INDEX.
+ Return its position if found, or (size_t)(-1) if not present in the list. */
+extern size_t gl_list_indexof_from (gl_list_t list, size_t start_index,
+ const void *elt);
+
+/* Search whether an element is already in the list,
+ at a position >= START_INDEX and < END_INDEX.
+ Return its position if found, or (size_t)(-1) if not present in the list. */
+extern size_t gl_list_indexof_from_to (gl_list_t list,
+ size_t start_index, size_t end_index,
+ const void *elt);
+
+/* Add an element as the first element of the list.
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_add_first (gl_list_t list, const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_add_first (gl_list_t list, const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Add an element as the last element of the list.
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_add_last (gl_list_t list, const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_add_last (gl_list_t list, const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Add an element before a given element node of the list.
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_add_before (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_add_before (gl_list_t list,
+ gl_list_node_t node,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Add an element after a given element node of the list.
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_add_after (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_add_after (gl_list_t list, gl_list_node_t node,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Add an element at a given position in the list.
+ POSITION must be >= 0 and <= gl_list_size (list). */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_list_add_at (gl_list_t list, size_t position,
+ const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_list_nx_add_at (gl_list_t list, size_t position,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Remove an element from the list.
+ Return true. */
+extern bool gl_list_remove_node (gl_list_t list, gl_list_node_t node);
+
+/* Remove an element at a given position from the list.
+ POSITION must be >= 0 and < gl_list_size (list).
+ Return true. */
+extern bool gl_list_remove_at (gl_list_t list, size_t position);
+
+/* Search and remove an element from the list.
+ Return true if it was found and removed. */
+extern bool gl_list_remove (gl_list_t list, const void *elt);
+
+/* Free an entire list.
+ (But this call does not free the elements of the list. It only invokes
+ the DISPOSE_FN on each of the elements of the list, and only if the list
+ is not a sublist.) */
+extern void gl_list_free (gl_list_t list);
+
+#endif /* End of inline and gl_xlist.h-defined functions. */
+
+/* --------------------- gl_list_iterator_t Data Type --------------------- */
+
+/* Functions for iterating through a list. */
+
+/* Type of an iterator that traverses a list.
+ This is a fixed-size struct, so that creation of an iterator doesn't need
+ memory allocation on the heap. */
+typedef struct
+{
+ /* For fast dispatch of gl_list_iterator_next. */
+ const struct gl_list_implementation *vtable;
+ /* For detecting whether the last returned element was removed. */
+ gl_list_t list;
+ size_t count;
+ /* Other, implementation-private fields. */
+ void *p; void *q;
+ size_t i; size_t j;
+} gl_list_iterator_t;
+
+#if 0 /* These are defined inline below. */
+
+/* Create an iterator traversing a list.
+ The list contents must not be modified while the iterator is in use,
+ except for replacing or removing the last returned element. */
+extern gl_list_iterator_t gl_list_iterator (gl_list_t list);
+
+/* Create an iterator traversing the element with indices i,
+ start_index <= i < end_index, of a list.
+ The list contents must not be modified while the iterator is in use,
+ except for replacing or removing the last returned element. */
+extern gl_list_iterator_t gl_list_iterator_from_to (gl_list_t list,
+ size_t start_index,
+ size_t end_index);
+
+/* If there is a next element, store the next element in *ELTP, store its
+ node in *NODEP if NODEP is non-NULL, advance the iterator and return true.
+ Otherwise, return false. */
+extern bool gl_list_iterator_next (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep);
+
+/* Free an iterator. */
+extern void gl_list_iterator_free (gl_list_iterator_t *iterator);
+
+#endif /* End of inline functions. */
+
+/* ---------------------- Sorted gl_list_t Data Type ---------------------- */
+
+/* The following functions are for lists without duplicates where the
+ order is given by a sort criterion. */
+
+/* Type of function used to compare two elements. Same as for qsort().
+ NULL denotes pointer comparison. */
+typedef int (*gl_listelement_compar_fn) (const void *elt1, const void *elt2);
+
+#if 0 /* Unless otherwise specified, these are defined inline below. */
+
+/* Search whether an element is already in the list.
+ The list is assumed to be sorted with COMPAR.
+ Return its node if found, or NULL if not present in the list.
+ If the list contains several copies of ELT, the node of the leftmost one is
+ returned. */
+extern gl_list_node_t gl_sortedlist_search (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+
+/* Search whether an element is already in the list.
+ The list is assumed to be sorted with COMPAR.
+ Only list elements with indices >= START_INDEX and < END_INDEX are
+ considered; the implementation uses these bounds to minimize the number
+ of COMPAR invocations.
+ Return its node if found, or NULL if not present in the list.
+ If the list contains several copies of ELT, the node of the leftmost one is
+ returned. */
+extern gl_list_node_t gl_sortedlist_search_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t start_index,
+ size_t end_index,
+ const void *elt);
+
+/* Search whether an element is already in the list.
+ The list is assumed to be sorted with COMPAR.
+ Return its position if found, or (size_t)(-1) if not present in the list.
+ If the list contains several copies of ELT, the position of the leftmost one
+ is returned. */
+extern size_t gl_sortedlist_indexof (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+
+/* Search whether an element is already in the list.
+ The list is assumed to be sorted with COMPAR.
+ Only list elements with indices >= START_INDEX and < END_INDEX are
+ considered; the implementation uses these bounds to minimize the number
+ of COMPAR invocations.
+ Return its position if found, or (size_t)(-1) if not present in the list.
+ If the list contains several copies of ELT, the position of the leftmost one
+ is returned. */
+extern size_t gl_sortedlist_indexof_from_to (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t start_index,
+ size_t end_index,
+ const void *elt);
+
+/* Add an element at the appropriate position in the list.
+ The list is assumed to be sorted with COMPAR.
+ Return its node. */
+/* declared in gl_xlist.h */
+extern gl_list_node_t gl_sortedlist_add (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_list_node_t gl_sortedlist_nx_add (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Search and remove an element from the list.
+ The list is assumed to be sorted with COMPAR.
+ Return true if it was found and removed.
+ If the list contains several copies of ELT, only the leftmost one is
+ removed. */
+extern bool gl_sortedlist_remove (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+
+#endif /* End of inline and gl_xlist.h-defined functions. */
+
+/* ------------------------ Implementation Details ------------------------ */
+
+struct gl_list_implementation
+{
+ /* gl_list_t functions. */
+ gl_list_t (*nx_create_empty) (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates);
+ gl_list_t (*nx_create) (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents);
+ size_t (*size) (gl_list_t list);
+ const void * (*node_value) (gl_list_t list, gl_list_node_t node);
+ int (*node_nx_set_value) (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+ gl_list_node_t (*next_node) (gl_list_t list, gl_list_node_t node);
+ gl_list_node_t (*previous_node) (gl_list_t list, gl_list_node_t node);
+ const void * (*get_at) (gl_list_t list, size_t position);
+ gl_list_node_t (*nx_set_at) (gl_list_t list, size_t position,
+ const void *elt);
+ gl_list_node_t (*search_from_to) (gl_list_t list, size_t start_index,
+ size_t end_index, const void *elt);
+ size_t (*indexof_from_to) (gl_list_t list, size_t start_index,
+ size_t end_index, const void *elt);
+ gl_list_node_t (*nx_add_first) (gl_list_t list, const void *elt);
+ gl_list_node_t (*nx_add_last) (gl_list_t list, const void *elt);
+ gl_list_node_t (*nx_add_before) (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+ gl_list_node_t (*nx_add_after) (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+ gl_list_node_t (*nx_add_at) (gl_list_t list, size_t position,
+ const void *elt);
+ bool (*remove_node) (gl_list_t list, gl_list_node_t node);
+ bool (*remove_at) (gl_list_t list, size_t position);
+ bool (*remove_elt) (gl_list_t list, const void *elt);
+ void (*list_free) (gl_list_t list);
+ /* gl_list_iterator_t functions. */
+ gl_list_iterator_t (*iterator) (gl_list_t list);
+ gl_list_iterator_t (*iterator_from_to) (gl_list_t list,
+ size_t start_index,
+ size_t end_index);
+ bool (*iterator_next) (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep);
+ void (*iterator_free) (gl_list_iterator_t *iterator);
+ /* Sorted gl_list_t functions. */
+ gl_list_node_t (*sortedlist_search) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+ gl_list_node_t (*sortedlist_search_from_to) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t start_index,
+ size_t end_index,
+ const void *elt);
+ size_t (*sortedlist_indexof) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+ size_t (*sortedlist_indexof_from_to) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ size_t start_index, size_t end_index,
+ const void *elt);
+ gl_list_node_t (*sortedlist_nx_add) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+ bool (*sortedlist_remove) (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+};
+
+struct gl_list_impl_base
+{
+ const struct gl_list_implementation *vtable;
+ gl_listelement_equals_fn equals_fn;
+ gl_listelement_hashcode_fn hashcode_fn;
+ gl_listelement_dispose_fn dispose_fn;
+ bool allow_duplicates;
+};
+
+/* Define all functions of this file as accesses to the
+ struct gl_list_implementation. */
+
+GL_LIST_INLINE gl_list_t
+gl_list_nx_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates)
+{
+ return implementation->nx_create_empty (implementation, equals_fn,
+ hashcode_fn, dispose_fn,
+ allow_duplicates);
+}
+
+GL_LIST_INLINE gl_list_t
+gl_list_nx_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents)
+{
+ return implementation->nx_create (implementation, equals_fn, hashcode_fn,
+ dispose_fn, allow_duplicates, count,
+ contents);
+}
+
+GL_LIST_INLINE size_t
+gl_list_size (gl_list_t list)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->size (list);
+}
+
+GL_LIST_INLINE const void *
+gl_list_node_value (gl_list_t list, gl_list_node_t node)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->node_value (list, node);
+}
+
+GL_LIST_INLINE int
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->node_nx_set_value (list, node, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_list_next_node (gl_list_t list, gl_list_node_t node)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->next_node (list, node);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_list_previous_node (gl_list_t list, gl_list_node_t node)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->previous_node (list, node);
+}
+
+GL_LIST_INLINE const void *
+gl_list_get_at (gl_list_t list, size_t position)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->get_at (list, position);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_set_at (gl_list_t list, size_t position, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_set_at (list, position, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_list_search (gl_list_t list, const void *elt)
+{
+ size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list);
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->search_from_to (list, 0, size, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_list_search_from (gl_list_t list, size_t start_index, const void *elt)
+{
+ size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list);
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->search_from_to (list, start_index, size, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_list_search_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->search_from_to (list, start_index, end_index, elt);
+}
+
+GL_LIST_INLINE size_t
+gl_list_indexof (gl_list_t list, const void *elt)
+{
+ size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list);
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->indexof_from_to (list, 0, size, elt);
+}
+
+GL_LIST_INLINE size_t
+gl_list_indexof_from (gl_list_t list, size_t start_index, const void *elt)
+{
+ size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list);
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->indexof_from_to (list, start_index, size, elt);
+}
+
+GL_LIST_INLINE size_t
+gl_list_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index,
+ const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->indexof_from_to (list, start_index, end_index, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_add_first (gl_list_t list, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_add_first (list, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_add_last (gl_list_t list, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_add_last (list, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_add_before (list, node, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_add_after (list, node, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_list_nx_add_at (gl_list_t list, size_t position, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->nx_add_at (list, position, elt);
+}
+
+GL_LIST_INLINE bool
+gl_list_remove_node (gl_list_t list, gl_list_node_t node)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->remove_node (list, node);
+}
+
+GL_LIST_INLINE bool
+gl_list_remove_at (gl_list_t list, size_t position)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->remove_at (list, position);
+}
+
+GL_LIST_INLINE bool
+gl_list_remove (gl_list_t list, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->remove_elt (list, elt);
+}
+
+GL_LIST_INLINE void
+gl_list_free (gl_list_t list)
+{
+ ((const struct gl_list_impl_base *) list)->vtable->list_free (list);
+}
+
+GL_LIST_INLINE gl_list_iterator_t
+gl_list_iterator (gl_list_t list)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->iterator (list);
+}
+
+GL_LIST_INLINE gl_list_iterator_t
+gl_list_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->iterator_from_to (list, start_index, end_index);
+}
+
+GL_LIST_INLINE bool
+gl_list_iterator_next (gl_list_iterator_t *iterator,
+ const void **eltp, gl_list_node_t *nodep)
+{
+ return iterator->vtable->iterator_next (iterator, eltp, nodep);
+}
+
+GL_LIST_INLINE void
+gl_list_iterator_free (gl_list_iterator_t *iterator)
+{
+ iterator->vtable->iterator_free (iterator);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_search (list, compar, elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+gl_sortedlist_search_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_search_from_to (list, compar, start_index, end_index,
+ elt);
+}
+
+GL_LIST_INLINE size_t
+gl_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_indexof (list, compar, elt);
+}
+
+GL_LIST_INLINE size_t
+gl_sortedlist_indexof_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_indexof_from_to (list, compar, start_index, end_index,
+ elt);
+}
+
+GL_LIST_INLINE gl_list_node_t
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_nx_add (list, compar, elt);
+}
+
+GL_LIST_INLINE bool
+gl_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, const void *elt)
+{
+ return ((const struct gl_list_impl_base *) list)->vtable
+ ->sortedlist_remove (list, compar, elt);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_LIST_H */
diff --git a/gl/lib/gl_map.c b/gl/lib/gl_map.c
new file mode 100644
index 00000000..758a65f3
--- /dev/null
+++ b/gl/lib/gl_map.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_MAP_INLINE _GL_EXTERN_INLINE
+#include "gl_map.h"
diff --git a/gl/lib/gl_map.h b/gl/lib/gl_map.h
new file mode 100644
index 00000000..02a3ac37
--- /dev/null
+++ b/gl/lib/gl_map.h
@@ -0,0 +1,382 @@
+/* Abstract map data type.
+ Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_MAP_H
+#define _GL_MAP_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_MAP_INLINE
+# define GL_MAP_INLINE _GL_INLINE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* gl_map is an abstract map data type. It can contain any number of
+ (key, value) pairs, where
+ - keys and values are objects ('void *' or 'const void *' pointers),
+ - There are no (key, value1) and (key, value2) pairs with the same key
+ (in the sense of a given comparator function).
+
+ There are several implementations of this map datatype, optimized for
+ different operations or for memory. You can start using the simplest map
+ implementation, GL_ARRAY_MAP, and switch to a different implementation
+ later, when you realize which operations are performed the most frequently.
+ The API of the different implementations is exactly the same; when switching
+ to a different implementation, you only have to change the gl_map_create
+ call.
+
+ The implementations are:
+ GL_ARRAY_MAP a growable array
+ GL_LINKEDHASH_MAP a hash table with a linked list
+ GL_HASH_MAP a hash table
+
+ The memory consumption is asymptotically the same: O(1) for every pair
+ in the map. When looking more closely at the average memory consumed
+ for an object, GL_ARRAY_MAP is the most compact representation, then comes
+ GL_HASH_MAP, and GL_LINKEDHASH_MAP needs the most memory.
+
+ The guaranteed average performance of the operations is, for a map of
+ n pairs:
+
+ Operation ARRAY LINKEDHASH
+ HASH
+
+ gl_map_size O(1) O(1)
+ gl_map_get O(n) O(1)
+ gl_map_put O(n) O(1)
+ gl_map_remove O(n) O(1)
+ gl_map_search O(n) O(1)
+ gl_map_iterator O(1) O(1)
+ gl_map_iterator_next O(1) O(1)
+ */
+
+/* --------------------------- gl_map_t Data Type --------------------------- */
+
+/* Type of function used to compare two keys.
+ NULL denotes pointer comparison. */
+typedef bool (*gl_mapkey_equals_fn) (const void *key1, const void *key2);
+
+/* Type of function used to compute a hash code.
+ NULL denotes a function that depends only on the pointer itself. */
+typedef size_t (*gl_mapkey_hashcode_fn) (const void *key);
+
+#ifndef _GL_MAP_DISPOSE_FNS_DEFINED
+
+/* Type of function used to dispose a key once a (key, value) pair is removed
+ from a map. NULL denotes a no-op. */
+typedef void (*gl_mapkey_dispose_fn) (const void *key);
+
+/* Type of function used to dispose a value once a (key, value) pair is removed
+ from a map. NULL denotes a no-op. */
+typedef void (*gl_mapvalue_dispose_fn) (const void *value);
+
+# define _GL_MAP_DISPOSE_FNS_DEFINED 1
+#endif
+
+struct gl_map_impl;
+/* Type representing an entire map. */
+typedef struct gl_map_impl * gl_map_t;
+
+struct gl_map_implementation;
+/* Type representing a map datatype implementation. */
+typedef const struct gl_map_implementation * gl_map_implementation_t;
+
+#if 0 /* Unless otherwise specified, these are defined inline below. */
+
+/* Create an empty map.
+ IMPLEMENTATION is one of GL_ARRAY_MAP, GL_LINKEDHASH_MAP, GL_HASH_MAP.
+ EQUALS_FN is a key comparison function or NULL.
+ HASHCODE_FN is a key hash code function or NULL.
+ KDISPOSE_FN is a key disposal function or NULL.
+ VDISPOSE_FN is a value disposal function or NULL. */
+/* declared in gl_xmap.h */
+extern gl_map_t gl_map_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_map_t gl_map_nx_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn);
+
+/* Return the current number of pairs in a map. */
+extern size_t gl_map_size (gl_map_t map);
+
+/* Search whether a pair with the given key is already in the map.
+ Return the value if found, or NULL if not present in the map. */
+extern const void * gl_map_get (gl_map_t map, const void *key);
+
+/* Search whether a pair with the given key is already in the map.
+ Return true and set *VALUEP to the value if found.
+ Return false if not present in the map. */
+extern bool gl_map_search (gl_map_t map, const void *key, const void **valuep);
+
+/* Add a pair to a map.
+ Return true if a pair with the given key was not already in the map and so
+ this pair was added.
+ Return false if a pair with the given key was already in the map and only
+ its value was replaced. */
+/* declared in gl_xmap.h */
+extern bool gl_map_put (gl_map_t map, const void *key, const void *value);
+/* Likewise. Return -1 upon out-of-memory. */
+extern int gl_map_nx_put (gl_map_t map, const void *key, const void *value)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Add a pair to a map and retrieve the previous value.
+ Return true if a pair with the given key was not already in the map and so
+ this pair was added.
+ Return false and set *OLDVALUEP to the previous value, if a pair with the
+ given key was already in the map and only its value was replaced. */
+/* declared in gl_xmap.h */
+extern bool gl_map_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep);
+/* Likewise. Return -1 upon out-of-memory. */
+extern int gl_map_nx_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Remove a pair from a map.
+ Return true if the key was found and its pair removed.
+ Return false otherwise. */
+extern bool gl_map_remove (gl_map_t map, const void *key);
+
+/* Remove a pair from a map and retrieve the previous value.
+ Return true and set *OLDVALUEP to the previous value, if the key was found
+ and its pair removed.
+ Return false otherwise. */
+extern bool gl_map_getremove (gl_map_t map, const void *key,
+ const void **oldvaluep);
+
+/* Free an entire map.
+ (But this call does not free the keys and values of the pairs in the map.
+ It only invokes the KDISPOSE_FN on each key and the VDISPOSE_FN on each value
+ of the pairs in the map.) */
+extern void gl_map_free (gl_map_t map);
+
+#endif /* End of inline and gl_xmap.h-defined functions. */
+
+/* ---------------------- gl_map_iterator_t Data Type ---------------------- */
+
+/* Functions for iterating through a map.
+ Note: Iterating through a map of type GL_HASH_MAP returns the pairs in an
+ unpredictable order. If you need a predictable order, use GL_LINKEDHASH_MAP
+ instead of GL_HASH_MAP. */
+
+/* Type of an iterator that traverses a map.
+ This is a fixed-size struct, so that creation of an iterator doesn't need
+ memory allocation on the heap. */
+typedef struct
+{
+ /* For fast dispatch of gl_map_iterator_next. */
+ const struct gl_map_implementation *vtable;
+ /* For detecting whether the last returned pair was removed. */
+ gl_map_t map;
+ size_t count;
+ /* Other, implementation-private fields. */
+ void *p; void *q;
+ size_t i; size_t j;
+} gl_map_iterator_t;
+
+#if 0 /* These are defined inline below. */
+
+/* Create an iterator traversing a map.
+ The map's contents must not be modified while the iterator is in use,
+ except for modifying the value of the last returned key or removing the
+ last returned pair. */
+extern gl_map_iterator_t gl_map_iterator (gl_map_t map);
+
+/* If there is a next pair, store the next pair in *KEYP and *VALUEP, advance
+ the iterator, and return true. Otherwise, return false. */
+extern bool gl_map_iterator_next (gl_map_iterator_t *iterator,
+ const void **keyp, const void **valuep);
+
+/* Free an iterator. */
+extern void gl_map_iterator_free (gl_map_iterator_t *iterator);
+
+#endif /* End of inline functions. */
+
+/* ------------------------- Implementation Details ------------------------- */
+
+struct gl_map_implementation
+{
+ /* gl_map_t functions. */
+ gl_map_t (*nx_create_empty) (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn);
+ size_t (*size) (gl_map_t map);
+ bool (*search) (gl_map_t map, const void *key, const void **valuep);
+ int (*nx_getput) (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep);
+ bool (*getremove) (gl_map_t map, const void *key, const void **oldvaluep);
+ void (*map_free) (gl_map_t map);
+ /* gl_map_iterator_t functions. */
+ gl_map_iterator_t (*iterator) (gl_map_t map);
+ bool (*iterator_next) (gl_map_iterator_t *iterator,
+ const void **keyp, const void **valuep);
+ void (*iterator_free) (gl_map_iterator_t *iterator);
+};
+
+struct gl_map_impl_base
+{
+ const struct gl_map_implementation *vtable;
+ gl_mapkey_equals_fn equals_fn;
+ gl_mapkey_dispose_fn kdispose_fn;
+ gl_mapvalue_dispose_fn vdispose_fn;
+};
+
+/* Define most functions of this file as accesses to the
+ struct gl_map_implementation. */
+
+GL_MAP_INLINE gl_map_t
+gl_map_nx_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn)
+{
+ return implementation->nx_create_empty (implementation,
+ equals_fn, hashcode_fn,
+ kdispose_fn, vdispose_fn);
+}
+
+GL_MAP_INLINE size_t
+gl_map_size (gl_map_t map)
+{
+ return ((const struct gl_map_impl_base *) map)->vtable->size (map);
+}
+
+GL_MAP_INLINE bool
+gl_map_search (gl_map_t map, const void *key, const void **valuep)
+{
+ return ((const struct gl_map_impl_base *) map)->vtable
+ ->search (map, key, valuep);
+}
+
+GL_MAP_INLINE int
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_map_nx_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep)
+{
+ return ((const struct gl_map_impl_base *) map)->vtable
+ ->nx_getput (map, key, value, oldvaluep);
+}
+
+GL_MAP_INLINE bool
+gl_map_getremove (gl_map_t map, const void *key, const void **oldvaluep)
+{
+ return ((const struct gl_map_impl_base *) map)->vtable
+ ->getremove (map, key, oldvaluep);
+}
+
+GL_MAP_INLINE void
+gl_map_free (gl_map_t map)
+{
+ ((const struct gl_map_impl_base *) map)->vtable->map_free (map);
+}
+
+GL_MAP_INLINE gl_map_iterator_t
+gl_map_iterator (gl_map_t map)
+{
+ return ((const struct gl_map_impl_base *) map)->vtable->iterator (map);
+}
+
+GL_MAP_INLINE bool
+gl_map_iterator_next (gl_map_iterator_t *iterator,
+ const void **keyp, const void **valuep)
+{
+ return iterator->vtable->iterator_next (iterator, keyp, valuep);
+}
+
+GL_MAP_INLINE void
+gl_map_iterator_free (gl_map_iterator_t *iterator)
+{
+ iterator->vtable->iterator_free (iterator);
+}
+
+/* Define the convenience functions, that is, the functions that are independent
+ of the implementation. */
+
+GL_MAP_INLINE const void *
+gl_map_get (gl_map_t map, const void *key)
+{
+ const void *value = NULL;
+ gl_map_search (map, key, &value);
+ return value;
+}
+
+GL_MAP_INLINE int
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_map_nx_put (gl_map_t map, const void *key, const void *value)
+{
+ const void *oldvalue;
+ int result = gl_map_nx_getput (map, key, value, &oldvalue);
+ if (result == 0)
+ {
+ gl_mapvalue_dispose_fn vdispose_fn =
+ ((const struct gl_map_impl_base *) map)->vdispose_fn;
+ if (vdispose_fn != NULL)
+ vdispose_fn (oldvalue);
+ }
+ return result;
+}
+
+GL_MAP_INLINE bool
+gl_map_remove (gl_map_t map, const void *key)
+{
+ const void *oldvalue;
+ bool result = gl_map_getremove (map, key, &oldvalue);
+ if (result)
+ {
+ gl_mapvalue_dispose_fn vdispose_fn =
+ ((const struct gl_map_impl_base *) map)->vdispose_fn;
+ if (vdispose_fn != NULL)
+ vdispose_fn (oldvalue);
+ }
+ return result;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_MAP_H */
diff --git a/gl/lib/gl_rbtree_list.c b/gl/lib/gl_rbtree_list.c
new file mode 100644
index 00000000..25d7c791
--- /dev/null
+++ b/gl/lib/gl_rbtree_list.c
@@ -0,0 +1,102 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "gl_rbtree_list.h"
+
+#include <stdlib.h>
+
+/* -------------------------- gl_list_t Data Type -------------------------- */
+
+/* Generic red-black tree code. */
+#include "gl_anyrbtree_list1.h"
+
+/* Generic binary tree code. */
+#include "gl_anytree_list1.h"
+
+/* Generic red-black tree code. */
+#include "gl_anyrbtree_list2.h"
+
+/* Generic binary tree code. */
+#include "gl_anytree_list2.h"
+
+/* For debugging. */
+static unsigned int
+check_invariants (gl_list_node_t node, gl_list_node_t parent)
+{
+ unsigned int left_blackheight =
+ (node->left != NULL ? check_invariants (node->left, node) : 0);
+ unsigned int right_blackheight =
+ (node->right != NULL ? check_invariants (node->right, node) : 0);
+
+ if (!(node->parent == parent))
+ abort ();
+ if (!(node->branch_size
+ == (node->left != NULL ? node->left->branch_size : 0)
+ + 1 + (node->right != NULL ? node->right->branch_size : 0)))
+ abort ();
+ if (!(node->color == BLACK || node->color == RED))
+ abort ();
+ if (parent == NULL && !(node->color == BLACK))
+ abort ();
+ if (!(left_blackheight == right_blackheight))
+ abort ();
+
+ return left_blackheight + (node->color == BLACK ? 1 : 0);
+}
+void
+gl_rbtree_list_check_invariants (gl_list_t list)
+{
+ if (list->root != NULL)
+ check_invariants (list->root, NULL);
+}
+
+const struct gl_list_implementation gl_rbtree_list_implementation =
+ {
+ gl_tree_nx_create_empty,
+ gl_tree_nx_create,
+ gl_tree_size,
+ gl_tree_node_value,
+ gl_tree_node_nx_set_value,
+ gl_tree_next_node,
+ gl_tree_previous_node,
+ gl_tree_get_at,
+ gl_tree_nx_set_at,
+ gl_tree_search_from_to,
+ gl_tree_indexof_from_to,
+ gl_tree_nx_add_first,
+ gl_tree_nx_add_last,
+ gl_tree_nx_add_before,
+ gl_tree_nx_add_after,
+ gl_tree_nx_add_at,
+ gl_tree_remove_node,
+ gl_tree_remove_at,
+ gl_tree_remove,
+ gl_tree_list_free,
+ gl_tree_iterator,
+ gl_tree_iterator_from_to,
+ gl_tree_iterator_next,
+ gl_tree_iterator_free,
+ gl_tree_sortedlist_search,
+ gl_tree_sortedlist_search_from_to,
+ gl_tree_sortedlist_indexof,
+ gl_tree_sortedlist_indexof_from_to,
+ gl_tree_sortedlist_nx_add,
+ gl_tree_sortedlist_remove
+ };
diff --git a/gl/lib/gl_rbtree_list.h b/gl/lib/gl_rbtree_list.h
new file mode 100644
index 00000000..a1d7d880
--- /dev/null
+++ b/gl/lib/gl_rbtree_list.h
@@ -0,0 +1,34 @@
+/* Sequential list data type implemented by a binary tree.
+ Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2006.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_RBTREE_LIST_H
+#define _GL_RBTREE_LIST_H
+
+#include "gl_list.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern const struct gl_list_implementation gl_rbtree_list_implementation;
+#define GL_RBTREE_LIST &gl_rbtree_list_implementation
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_RBTREE_LIST_H */
diff --git a/gl/lib/gl_set.c b/gl/lib/gl_set.c
new file mode 100644
index 00000000..e00d2026
--- /dev/null
+++ b/gl/lib/gl_set.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_SET_INLINE _GL_EXTERN_INLINE
+#include "gl_set.h"
diff --git a/gl/lib/gl_set.h b/gl/lib/gl_set.h
new file mode 100644
index 00000000..52a6cf2d
--- /dev/null
+++ b/gl/lib/gl_set.h
@@ -0,0 +1,281 @@
+/* Abstract set data type.
+ Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_SET_H
+#define _GL_SET_H
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_SET_INLINE
+# define GL_SET_INLINE _GL_INLINE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* gl_set is an abstract set data type. It can contain any number of objects
+ ('void *' or 'const void *' pointers); the order does not matter.
+ Duplicates (in the sense of the comparator) are forbidden.
+
+ There are several implementations of this set datatype, optimized for
+ different operations or for memory. You can start using the simplest set
+ implementation, GL_ARRAY_SET, and switch to a different implementation
+ later, when you realize which operations are performed the most frequently.
+ The API of the different implementations is exactly the same; when switching
+ to a different implementation, you only have to change the gl_set_create
+ call.
+
+ The implementations are:
+ GL_ARRAY_SET a growable array
+ GL_LINKEDHASH_SET a hash table with a linked list
+ GL_HASH_SET a hash table
+
+ The memory consumption is asymptotically the same: O(1) for every object
+ in the set. When looking more closely at the average memory consumed
+ for an object, GL_ARRAY_SET is the most compact representation, then comes
+ GL_HASH_SET, and GL_LINKEDHASH_SET needs the most memory.
+
+ The guaranteed average performance of the operations is, for a set of
+ n elements:
+
+ Operation ARRAY LINKEDHASH
+ HASH
+
+ gl_set_size O(1) O(1)
+ gl_set_add O(n) O(1)
+ gl_set_remove O(n) O(1)
+ gl_set_search O(n) O(1)
+ gl_set_iterator O(1) O(1)
+ gl_set_iterator_next O(1) O(1)
+ */
+
+/* --------------------------- gl_set_t Data Type --------------------------- */
+
+/* Type of function used to compare two elements.
+ NULL denotes pointer comparison. */
+typedef bool (*gl_setelement_equals_fn) (const void *elt1, const void *elt2);
+
+/* Type of function used to compute a hash code.
+ NULL denotes a function that depends only on the pointer itself. */
+typedef size_t (*gl_setelement_hashcode_fn) (const void *elt);
+
+#ifndef _GL_SETELEMENT_DISPOSE_FN_DEFINED
+/* Type of function used to dispose an element once it's removed from a set.
+ NULL denotes a no-op. */
+typedef void (*gl_setelement_dispose_fn) (const void *elt);
+# define _GL_SETELEMENT_DISPOSE_FN_DEFINED 1
+#endif
+
+struct gl_set_impl;
+/* Type representing an entire set. */
+typedef struct gl_set_impl * gl_set_t;
+
+struct gl_set_implementation;
+/* Type representing a set datatype implementation. */
+typedef const struct gl_set_implementation * gl_set_implementation_t;
+
+#if 0 /* Unless otherwise specified, these are defined inline below. */
+
+/* Create an empty set.
+ IMPLEMENTATION is one of GL_ARRAY_SET, GL_LINKEDHASH_SET, GL_HASH_SET.
+ EQUALS_FN is an element comparison function or NULL.
+ HASHCODE_FN is an element hash code function or NULL.
+ DISPOSE_FN is an element disposal function or NULL. */
+/* declared in gl_xset.h */
+extern gl_set_t gl_set_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn);
+/* Likewise. Return NULL upon out-of-memory. */
+extern gl_set_t gl_set_nx_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn);
+
+/* Return the current number of elements in a set. */
+extern size_t gl_set_size (gl_set_t set);
+
+/* Search whether an element is already in the set.
+ Return true if found, or false if not present in the set. */
+extern bool gl_set_search (gl_set_t set, const void *elt);
+
+/* Add an element to a set.
+ Return true if it was not already in the set and added, false otherwise. */
+/* declared in gl_xset.h */
+extern bool gl_set_add (gl_set_t set, const void *elt);
+/* Likewise. Return -1 upon out-of-memory. */
+extern int gl_set_nx_add (gl_set_t set, const void *elt)
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+ ;
+
+/* Remove an element from a set.
+ Return true if it was found and removed. */
+extern bool gl_set_remove (gl_set_t set, const void *elt);
+
+/* Free an entire set.
+ (But this call does not free the elements of the set. It only invokes
+ the DISPOSE_FN on each of the elements of the set.) */
+extern void gl_set_free (gl_set_t set);
+
+#endif /* End of inline and gl_xset.h-defined functions. */
+
+/* ---------------------- gl_set_iterator_t Data Type ---------------------- */
+
+/* Functions for iterating through a set.
+ Note: Iterating through a set of type GL_HASH_SET returns the elements in an
+ unpredictable order. If you need a predictable order, use GL_LINKEDHASH_SET
+ instead of GL_HASH_SET. */
+
+/* Type of an iterator that traverses a set.
+ This is a fixed-size struct, so that creation of an iterator doesn't need
+ memory allocation on the heap. */
+typedef struct
+{
+ /* For fast dispatch of gl_set_iterator_next. */
+ const struct gl_set_implementation *vtable;
+ /* For detecting whether the last returned element was removed. */
+ gl_set_t set;
+ size_t count;
+ /* Other, implementation-private fields. */
+ void *p; void *q;
+ size_t i; size_t j;
+} gl_set_iterator_t;
+
+#if 0 /* These are defined inline below. */
+
+/* Create an iterator traversing a set.
+ The set's contents must not be modified while the iterator is in use,
+ except for removing the last returned element. */
+extern gl_set_iterator_t gl_set_iterator (gl_set_t set);
+
+/* If there is a next element, store the next element in *ELTP, advance the
+ iterator and return true. Otherwise, return false. */
+extern bool gl_set_iterator_next (gl_set_iterator_t *iterator,
+ const void **eltp);
+
+/* Free an iterator. */
+extern void gl_set_iterator_free (gl_set_iterator_t *iterator);
+
+#endif /* End of inline functions. */
+
+/* ------------------------ Implementation Details ------------------------ */
+
+struct gl_set_implementation
+{
+ /* gl_set_t functions. */
+ gl_set_t (*nx_create_empty) (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn);
+ size_t (*size) (gl_set_t set);
+ bool (*search) (gl_set_t set, const void *elt);
+ int (*nx_add) (gl_set_t set, const void *elt);
+ bool (*remove_elt) (gl_set_t set, const void *elt);
+ void (*set_free) (gl_set_t set);
+ /* gl_set_iterator_t functions. */
+ gl_set_iterator_t (*iterator) (gl_set_t set);
+ bool (*iterator_next) (gl_set_iterator_t *iterator, const void **eltp);
+ void (*iterator_free) (gl_set_iterator_t *iterator);
+};
+
+struct gl_set_impl_base
+{
+ const struct gl_set_implementation *vtable;
+ gl_setelement_equals_fn equals_fn;
+ gl_setelement_dispose_fn dispose_fn;
+};
+
+/* Define all functions of this file as accesses to the
+ struct gl_set_implementation. */
+
+GL_SET_INLINE gl_set_t
+gl_set_nx_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn)
+{
+ return implementation->nx_create_empty (implementation, equals_fn,
+ hashcode_fn, dispose_fn);
+}
+
+GL_SET_INLINE size_t
+gl_set_size (gl_set_t set)
+{
+ return ((const struct gl_set_impl_base *) set)->vtable->size (set);
+}
+
+GL_SET_INLINE bool
+gl_set_search (gl_set_t set, const void *elt)
+{
+ return ((const struct gl_set_impl_base *) set)->vtable->search (set, elt);
+}
+
+GL_SET_INLINE int
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ __attribute__ ((__warn_unused_result__))
+#endif
+gl_set_nx_add (gl_set_t set, const void *elt)
+{
+ return ((const struct gl_set_impl_base *) set)->vtable->nx_add (set, elt);
+}
+
+GL_SET_INLINE bool
+gl_set_remove (gl_set_t set, const void *elt)
+{
+ return ((const struct gl_set_impl_base *) set)->vtable->remove_elt (set, elt);
+}
+
+GL_SET_INLINE void
+gl_set_free (gl_set_t set)
+{
+ ((const struct gl_set_impl_base *) set)->vtable->set_free (set);
+}
+
+GL_SET_INLINE gl_set_iterator_t
+gl_set_iterator (gl_set_t set)
+{
+ return ((const struct gl_set_impl_base *) set)->vtable->iterator (set);
+}
+
+GL_SET_INLINE bool
+gl_set_iterator_next (gl_set_iterator_t *iterator, const void **eltp)
+{
+ return iterator->vtable->iterator_next (iterator, eltp);
+}
+
+GL_SET_INLINE void
+gl_set_iterator_free (gl_set_iterator_t *iterator)
+{
+ iterator->vtable->iterator_free (iterator);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_SET_H */
diff --git a/gl/lib/gl_xlist.c b/gl/lib/gl_xlist.c
new file mode 100644
index 00000000..fe3c8933
--- /dev/null
+++ b/gl/lib/gl_xlist.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_XLIST_INLINE _GL_EXTERN_INLINE
+#include "gl_xlist.h"
diff --git a/gl/lib/gl_xlist.h b/gl/lib/gl_xlist.h
new file mode 100644
index 00000000..87885c33
--- /dev/null
+++ b/gl/lib/gl_xlist.h
@@ -0,0 +1,177 @@
+/* Abstract sequential list data type, with out-of-memory checking.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_XLIST_H
+#define _GL_XLIST_H
+
+#include "gl_list.h"
+#include "xalloc.h"
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_XLIST_INLINE
+# define GL_XLIST_INLINE _GL_INLINE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These functions are thin wrappers around the corresponding functions with
+ _nx_ infix from gl_list.h. Upon out-of-memory, they invoke xalloc_die (),
+ instead of returning an error indicator. */
+#if 0 /* These are defined inline below. */
+extern gl_list_t gl_list_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates);
+extern gl_list_t gl_list_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents);
+extern void gl_list_node_set_value (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+extern gl_list_node_t gl_list_set_at (gl_list_t list, size_t position,
+ const void *elt);
+extern gl_list_node_t gl_list_add_first (gl_list_t list, const void *elt);
+extern gl_list_node_t gl_list_add_last (gl_list_t list, const void *elt);
+extern gl_list_node_t gl_list_add_before (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+extern gl_list_node_t gl_list_add_after (gl_list_t list, gl_list_node_t node,
+ const void *elt);
+extern gl_list_node_t gl_list_add_at (gl_list_t list, size_t position,
+ const void *elt);
+extern gl_list_node_t gl_sortedlist_add (gl_list_t list,
+ gl_listelement_compar_fn compar,
+ const void *elt);
+#endif
+
+GL_XLIST_INLINE gl_list_t
+gl_list_create_empty (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates)
+{
+ gl_list_t result =
+ gl_list_nx_create_empty (implementation, equals_fn, hashcode_fn, dispose_fn,
+ allow_duplicates);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_t
+gl_list_create (gl_list_implementation_t implementation,
+ gl_listelement_equals_fn equals_fn,
+ gl_listelement_hashcode_fn hashcode_fn,
+ gl_listelement_dispose_fn dispose_fn,
+ bool allow_duplicates,
+ size_t count, const void **contents)
+{
+ gl_list_t result =
+ gl_list_nx_create (implementation, equals_fn, hashcode_fn, dispose_fn,
+ allow_duplicates, count, contents);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE void
+gl_list_node_set_value (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ int result = gl_list_node_nx_set_value (list, node, elt);
+ if (result < 0)
+ xalloc_die ();
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_set_at (gl_list_t list, size_t position, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_set_at (list, position, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_add_first (gl_list_t list, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_add_first (list, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_add_last (gl_list_t list, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_add_last (list, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_add_before (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_add_before (list, node, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_add_after (gl_list_t list, gl_list_node_t node, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_add_after (list, node, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_list_add_at (gl_list_t list, size_t position, const void *elt)
+{
+ gl_list_node_t result = gl_list_nx_add_at (list, position, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XLIST_INLINE gl_list_node_t
+gl_sortedlist_add (gl_list_t list, gl_listelement_compar_fn compar,
+ const void *elt)
+{
+ gl_list_node_t result = gl_sortedlist_nx_add (list, compar, elt);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_XLIST_H */
diff --git a/gl/lib/gl_xmap.c b/gl/lib/gl_xmap.c
new file mode 100644
index 00000000..3d39fdba
--- /dev/null
+++ b/gl/lib/gl_xmap.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_XMAP_INLINE _GL_EXTERN_INLINE
+#include "gl_xmap.h"
diff --git a/gl/lib/gl_xmap.h b/gl/lib/gl_xmap.h
new file mode 100644
index 00000000..fb97bc3c
--- /dev/null
+++ b/gl/lib/gl_xmap.h
@@ -0,0 +1,91 @@
+/* Abstract map data type, with out-of-memory checking.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2018.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_XMAP_H
+#define _GL_XMAP_H
+
+#include "gl_map.h"
+#include "xalloc.h"
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_XMAP_INLINE
+# define GL_XMAP_INLINE _GL_INLINE
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These functions are thin wrappers around the corresponding functions with
+ _nx_ infix from gl_map.h. Upon out-of-memory, they invoke xalloc_die (),
+ instead of returning an error indicator. */
+#if 0 /* These are defined inline below. */
+extern gl_map_t gl_map_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn);
+extern bool gl_map_put (gl_map_t map, const void *key, const void *value);
+extern bool gl_map_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep);
+#endif
+
+GL_XMAP_INLINE gl_map_t
+gl_map_create_empty (gl_map_implementation_t implementation,
+ gl_mapkey_equals_fn equals_fn,
+ gl_mapkey_hashcode_fn hashcode_fn,
+ gl_mapkey_dispose_fn kdispose_fn,
+ gl_mapvalue_dispose_fn vdispose_fn)
+{
+ gl_map_t result =
+ gl_map_nx_create_empty (implementation, equals_fn, hashcode_fn,
+ kdispose_fn, vdispose_fn);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XMAP_INLINE bool
+gl_map_put (gl_map_t map, const void *key, const void *value)
+{
+ int result = gl_map_nx_put (map, key, value);
+ if (result < 0)
+ xalloc_die ();
+ return result;
+}
+
+GL_XMAP_INLINE bool
+gl_map_getput (gl_map_t map, const void *key, const void *value,
+ const void **oldvaluep)
+{
+ int result = gl_map_nx_getput (map, key, value, oldvaluep);
+ if (result < 0)
+ xalloc_die ();
+ return result;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_XMAP_H */
diff --git a/gl/lib/gl_xset.c b/gl/lib/gl_xset.c
new file mode 100644
index 00000000..83557c04
--- /dev/null
+++ b/gl/lib/gl_xset.c
@@ -0,0 +1,3 @@
+#include <config.h>
+#define GL_XSET_INLINE _GL_EXTERN_INLINE
+#include "gl_xset.h"
diff --git a/gl/lib/gl_xset.h b/gl/lib/gl_xset.h
new file mode 100644
index 00000000..23496dc4
--- /dev/null
+++ b/gl/lib/gl_xset.h
@@ -0,0 +1,76 @@
+/* Abstract set data type, with out-of-memory checking.
+ Copyright (C) 2009-2019 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef _GL_XSET_H
+#define _GL_XSET_H
+
+#include "gl_set.h"
+#include "xalloc.h"
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef GL_XSET_INLINE
+# define GL_XSET_INLINE _GL_INLINE
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These functions are thin wrappers around the corresponding functions with
+ _nx_ infix from gl_set.h. Upon out-of-memory, they invoke xalloc_die (),
+ instead of returning an error indicator. */
+#if 0 /* These are defined inline below. */
+extern gl_set_t gl_set_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn);
+extern bool gl_set_add (gl_set_t set, const void *elt);
+#endif
+
+GL_XSET_INLINE gl_set_t
+gl_set_create_empty (gl_set_implementation_t implementation,
+ gl_setelement_equals_fn equals_fn,
+ gl_setelement_hashcode_fn hashcode_fn,
+ gl_setelement_dispose_fn dispose_fn)
+{
+ gl_set_t result =
+ gl_set_nx_create_empty (implementation, equals_fn, hashcode_fn, dispose_fn);
+ if (result == NULL)
+ xalloc_die ();
+ return result;
+}
+
+GL_XSET_INLINE bool
+gl_set_add (gl_set_t set, const void *elt)
+{
+ int result = gl_set_nx_add (set, elt);
+ if (result < 0)
+ xalloc_die ();
+ return result;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _GL_XSET_H */
diff --git a/gl/lib/hash-pjw-bare.c b/gl/lib/hash-pjw-bare.c
new file mode 100644
index 00000000..1b6f26bf
--- /dev/null
+++ b/gl/lib/hash-pjw-bare.c
@@ -0,0 +1,42 @@
+/* hash-pjw-bare.c -- compute a hash value from a provided buffer.
+
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#include "hash-pjw-bare.h"
+
+#include <limits.h>
+
+#define SIZE_BITS (sizeof (size_t) * CHAR_BIT)
+
+/* Return a hash of the N bytes of X using the method described by
+ Bruno Haible in https://www.haible.de/bruno/hashfunc.html.
+ Note that while many hash functions reduce their result via modulo
+ to a 0..table_size-1 range, this function does not do that. */
+
+size_t
+hash_pjw_bare (const void *x, size_t n)
+{
+ const unsigned char *s = x;
+ size_t h = 0;
+ unsigned i;
+
+ for (i = 0; i < n; i++)
+ h = s[i] + ((h << 9) | (h >> (SIZE_BITS - 9)));
+
+ return h;
+}
diff --git a/gl/lib/hash-pjw-bare.h b/gl/lib/hash-pjw-bare.h
new file mode 100644
index 00000000..8fd8d9fb
--- /dev/null
+++ b/gl/lib/hash-pjw-bare.h
@@ -0,0 +1,24 @@
+/* hash-pjw-bare.h -- declaration for a simple hash function
+ Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+
+/* Compute a hash code for a buffer starting at X and of size N,
+ and return the hash code. Note that unlike hash_pjw(), it does not
+ return it modulo a table size.
+ The result is platform dependent: it depends on the size of the 'size_t'
+ type. */
+extern size_t hash_pjw_bare (const void *x, size_t n) _GL_ATTRIBUTE_PURE;
diff --git a/gl/lib/lchown.c b/gl/lib/lchown.c
new file mode 100644
index 00000000..03138c29
--- /dev/null
+++ b/gl/lib/lchown.c
@@ -0,0 +1,117 @@
+/* Provide a stub lchown function for systems that lack it.
+
+ Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2019 Free Software
+ Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* written by Jim Meyering */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include <errno.h>
+#include <stdbool.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#if !HAVE_LCHOWN
+
+/* If the system chown does not follow symlinks, we don't want it
+ replaced by gnulib's chown, which does follow symlinks. */
+# if CHOWN_MODIFIES_SYMLINK
+# undef chown
+# endif
+
+/* Work just like chown, except when FILE is a symbolic link.
+ In that case, set errno to EOPNOTSUPP and return -1.
+ But if autoconf tests determined that chown modifies
+ symlinks, then just call chown. */
+
+int
+lchown (const char *file, uid_t uid, gid_t gid)
+{
+# if HAVE_CHOWN
+# if ! CHOWN_MODIFIES_SYMLINK
+ struct stat stats;
+
+ if (lstat (file, &stats) == 0 && S_ISLNK (stats.st_mode))
+ {
+ errno = EOPNOTSUPP;
+ return -1;
+ }
+# endif
+
+ return chown (file, uid, gid);
+
+# else /* !HAVE_CHOWN */
+ errno = ENOSYS;
+ return -1;
+# endif
+}
+
+#else /* HAVE_LCHOWN */
+
+# undef lchown
+
+/* Work around trailing slash bugs in lchown. */
+int
+rpl_lchown (const char *file, uid_t uid, gid_t gid)
+{
+ bool stat_valid = false;
+ int result;
+
+# if CHOWN_CHANGE_TIME_BUG
+ struct stat st;
+
+ if (gid != (gid_t) -1 || uid != (uid_t) -1)
+ {
+ if (lstat (file, &st))
+ return -1;
+ stat_valid = true;
+ if (!S_ISLNK (st.st_mode))
+ return chown (file, uid, gid);
+ }
+# endif
+
+# if CHOWN_TRAILING_SLASH_BUG
+ if (!stat_valid)
+ {
+ size_t len = strlen (file);
+ if (len && file[len - 1] == '/')
+ return chown (file, uid, gid);
+ }
+# endif
+
+ result = lchown (file, uid, gid);
+
+# if CHOWN_CHANGE_TIME_BUG && HAVE_LCHMOD
+ if (result == 0 && stat_valid
+ && (uid == st.st_uid || uid == (uid_t) -1)
+ && (gid == st.st_gid || gid == (gid_t) -1))
+ {
+ /* No change in ownership, but at least one argument was not -1,
+ so we are required to update ctime. Since lchown succeeded,
+ we assume that lchmod will do likewise. But if the system
+ lacks lchmod and lutimes, we are out of luck. Oh well. */
+ result = lchmod (file, st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO
+ | S_ISUID | S_ISGID | S_ISVTX));
+ }
+# endif
+
+ return result;
+}
+
+#endif /* HAVE_LCHOWN */
diff --git a/gl/lib/regexec.c b/gl/lib/regexec.c
index 21cf7915..2f7cb5dc 100644
--- a/gl/lib/regexec.c
+++ b/gl/lib/regexec.c
@@ -2207,7 +2207,7 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
dfa->nexts[node_idx]))
/* The node can't accept the "multi byte", or the
destination was already thrown away, then the node
- could't accept the current input "multi byte". */
+ couldn't accept the current input "multi byte". */
naccepted = 0;
/* Otherwise, it is sure that the node could accept
'naccepted' bytes input. */
diff --git a/gl/lib/stdopen.c b/gl/lib/stdopen.c
new file mode 100644
index 00000000..29350d1b
--- /dev/null
+++ b/gl/lib/stdopen.c
@@ -0,0 +1,66 @@
+/* stdopen.c - ensure that the three standard file descriptors are in use
+
+ Copyright (C) 2005-2006, 2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert and Jim Meyering. */
+
+#include <config.h>
+
+#include "stdopen.h"
+
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+
+/* Try to ensure that all of the standard file numbers (0, 1, 2)
+ are in use. Without this, each application would have to guard
+ every call to open, dup, fopen, etc. with tests to ensure they
+ don't use one of the special file numbers when opening a file.
+ Return zero if successful, an errno value if at least one of
+ the file descriptors is initially closed and could not be opened. */
+
+int
+stdopen (void)
+{
+ int fd;
+ for (fd = STDIN_FILENO; fd <= STDERR_FILENO; fd++)
+ {
+ if (fcntl (fd, F_GETFD) < 0)
+ {
+ /* Open /dev/null with the contrary mode so that the typical
+ read (stdin) or write (stdout, stderr) operation will fail.
+ With descriptor 0, we can do even better on systems that
+ have /dev/full, by opening that write-only instead of
+ /dev/null. The only drawback is that a write-provoked
+ failure comes with a misleading errno value, ENOSPC. */
+ int mode = fd == STDIN_FILENO ? O_WRONLY : O_RDONLY;
+ int full_fd = fd == STDIN_FILENO ? open ("/dev/full", mode) : -1;
+ int new_fd = full_fd < 0 ? open ("/dev/null", mode) : full_fd;
+ if (new_fd < 0)
+ return errno;
+ if (STDERR_FILENO < new_fd)
+ {
+ /* 0, 1, and 2 are already open somehow.
+ Our is not to reason why. */
+ close (new_fd);
+ return 0;
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/gl/lib/stdopen.h b/gl/lib/stdopen.h
new file mode 100644
index 00000000..27901d39
--- /dev/null
+++ b/gl/lib/stdopen.h
@@ -0,0 +1,14 @@
+#ifndef STDOPEN_H
+# define STDOPEN_H 1
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+int stdopen (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
diff --git a/gl/lib/sys_stat.in.h b/gl/lib/sys_stat.in.h
index 58fa93fd..9ddd1a8d 100644
--- a/gl/lib/sys_stat.in.h
+++ b/gl/lib/sys_stat.in.h
@@ -54,9 +54,16 @@
/* The definition of _GL_WARN_ON_USE is copied here. */
+/* Before doing "#define mknod rpl_mknod" below, we need to include all
+ headers that may declare mknod(). OS/2 kLIBC declares mknod() in
+ <unistd.h>, not in <sys/stat.h>. */
+#ifdef __KLIBC__
+# include <unistd.h>
+#endif
+
/* Before doing "#define mkdir rpl_mkdir" below, we need to include all
headers that may declare mkdir(). Native Windows platforms declare mkdir
- in <io.h> and/or <direct.h>, not in <unistd.h>. */
+ in <io.h> and/or <direct.h>, not in <sys/stat.h>. */
#if defined _WIN32 && ! defined __CYGWIN__
# include <io.h> /* mingw32, mingw64 */
# include <direct.h> /* mingw64, MSVC 9 */
diff --git a/gl/lib/vasnprintf.c b/gl/lib/vasnprintf.c
index c4759037..f1f47f0d 100644
--- a/gl/lib/vasnprintf.c
+++ b/gl/lib/vasnprintf.c
@@ -4874,6 +4874,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
# if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
&& !defined __UCLIBC__) \
|| (defined __APPLE__ && defined __MACH__) \
+ || defined __ANDROID__ \
|| (defined _WIN32 && ! defined __CYGWIN__))
fbp[1] = '%';
fbp[2] = 'n';
@@ -4895,6 +4896,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
On Mac OS X 10.13 or newer, the use of %n in format strings
in writable memory by default crashes the program, so we
should avoid it in this situation. */
+ /* On Android, we know that snprintf's return value conforms to
+ ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
+ gl_SNPRINTF_TRUNCATION_C99 pass.
+ Therefore we can avoid using %n in this situation.
+ Starting on 2018-03-07, the use of %n in format strings
+ produces a fatal error (see
+ <https://android.googlesource.com/platform/bionic/+/41398d03b7e8e0dfb951660ae713e682e9fc0336>),
+ so we should avoid it. */
/* On native Windows systems (such as mingw), we can avoid using
%n because:
- Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
diff --git a/gl/lib/verify.h b/gl/lib/verify.h
index b2e5f644..6930645a 100644
--- a/gl/lib/verify.h
+++ b/gl/lib/verify.h
@@ -26,7 +26,7 @@
here generates easier-to-read diagnostics when verify (R) fails.
Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
- This will likely be supported by future GCC versions, in C++ mode.
+ This is supported by GCC 6.1.0 and later, in C++ mode.
Use this only with GCC. If we were willing to slow 'configure'
down we could also use it with other compilers, but since this
@@ -36,9 +36,7 @@
&& !defined __cplusplus)
# define _GL_HAVE__STATIC_ASSERT 1
#endif
-/* The condition (99 < __GNUC__) is temporary, until we know about the
- first G++ release that supports static_assert. */
-#if (99 < __GNUC__) && defined __cplusplus
+#if (6 <= __GNUC__) && defined __cplusplus
# define _GL_HAVE_STATIC_ASSERT 1
#endif
diff --git a/gl/lib/xstdopen.c b/gl/lib/xstdopen.c
new file mode 100644
index 00000000..677a2801
--- /dev/null
+++ b/gl/lib/xstdopen.c
@@ -0,0 +1,35 @@
+/* Ensure that stdin, stdout, stderr are open.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "xstdopen.h"
+
+#include "stdopen.h"
+#include "error.h"
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+void
+xstdopen (void)
+{
+ int stdopen_errno = stdopen ();
+ if (stdopen_errno != 0)
+ error (exit_failure, stdopen_errno, _("standard file descriptors"));
+}
diff --git a/gl/lib/xstdopen.h b/gl/lib/xstdopen.h
new file mode 100644
index 00000000..08a8a042
--- /dev/null
+++ b/gl/lib/xstdopen.h
@@ -0,0 +1,28 @@
+/* Ensure that stdin, stdout, stderr are open.
+ Copyright (C) 2019 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Ensures that the file descriptors of stdin, stdout, stderr (0, 1, 2) are
+ open. Exits the program with an error message upon failure; the error
+ message may not appear if stderr is closed. */
+extern void xstdopen (void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/gl/m4/chown.m4 b/gl/m4/chown.m4
new file mode 100644
index 00000000..d92fd1c1
--- /dev/null
+++ b/gl/m4/chown.m4
@@ -0,0 +1,208 @@
+# serial 30
+# Determine whether we need the chown wrapper.
+
+dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2019 Free Software
+dnl Foundation, Inc.
+
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# chown should accept arguments of -1 for uid and gid, and it should
+# dereference symlinks. If it doesn't, arrange to use the replacement
+# function.
+
+# From Jim Meyering.
+
+# This is taken from the following Autoconf patch:
+# https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9
+AC_DEFUN([AC_FUNC_CHOWN],
+[
+ AC_REQUIRE([AC_TYPE_UID_T])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+ AC_CHECK_HEADERS([unistd.h])
+ AC_CACHE_CHECK([for working chown],
+ [ac_cv_func_chown_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT
+ [#include <fcntl.h>
+ ]],
+ [[
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+ ]])
+ ],
+ [ac_cv_func_chown_works=yes],
+ [ac_cv_func_chown_works=no],
+ [case "$host_os" in # ((
+ # Guess yes on Linux systems.
+ linux-* | linux) ac_cv_func_chown_works="guessing yes" ;;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) ac_cv_func_chown_works="guessing yes" ;;
+ # Guess no on native Windows.
+ mingw*) ac_cv_func_chown_works="guessing no" ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_chown_works="guessing no" ;;
+ esac
+ ])
+ rm -f conftest.chown
+ ])
+ case "$ac_cv_func_chown_works" in
+ *yes)
+ AC_DEFINE([HAVE_CHOWN], [1],
+ [Define to 1 if your system has a working `chown' function.])
+ ;;
+ esac
+])# AC_FUNC_CHOWN
+
+AC_DEFUN_ONCE([gl_FUNC_CHOWN],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_TYPE_UID_T])
+ AC_REQUIRE([AC_FUNC_CHOWN])
+ AC_REQUIRE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([chown fchown])
+
+ dnl mingw lacks chown altogether.
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ dnl Some old systems treated chown like lchown.
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ dnl Some old systems tried to use uid/gid -1 literally.
+ case "$ac_cv_func_chown_works" in
+ *no)
+ AC_DEFINE([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE], [1],
+ [Define if chown is not POSIX compliant regarding IDs of -1.])
+ REPLACE_CHOWN=1
+ ;;
+ esac
+
+ dnl Solaris 9 ignores trailing slash.
+ dnl FreeBSD 7.2 mishandles trailing slash on symlinks.
+ dnl Likewise for AIX 7.1.
+ AC_CACHE_CHECK([whether chown honors trailing slash],
+ [gl_cv_func_chown_slash_works],
+ [touch conftest.file && rm -f conftest.link
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+]], [[ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+ ]])],
+ [gl_cv_func_chown_slash_works=yes],
+ [gl_cv_func_chown_slash_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_chown_slash_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_chown_slash_works="guessing no" ;;
+ esac
+ ])
+ rm -f conftest.link conftest.file])
+ case "$gl_cv_func_chown_slash_works" in
+ *yes) ;;
+ *)
+ AC_DEFINE([CHOWN_TRAILING_SLASH_BUG], [1],
+ [Define to 1 if chown mishandles trailing slash.])
+ REPLACE_CHOWN=1
+ ;;
+ esac
+
+ dnl OpenBSD fails to update ctime if ownership does not change.
+ AC_CACHE_CHECK([whether chown always updates ctime],
+ [gl_cv_func_chown_ctime_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+]], [[ struct stat st1, st2;
+ if (close (creat ("conftest.file", 0600))) return 1;
+ if (stat ("conftest.file", &st1)) return 2;
+ sleep (1);
+ if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3;
+ if (stat ("conftest.file", &st2)) return 4;
+ if (st2.st_ctime <= st1.st_ctime) return 5;
+ ]])],
+ [gl_cv_func_chown_ctime_works=yes],
+ [gl_cv_func_chown_ctime_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_chown_ctime_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_chown_ctime_works="guessing no" ;;
+ esac
+ ])
+ rm -f conftest.file])
+ case "$gl_cv_func_chown_ctime_works" in
+ *yes) ;;
+ *)
+ AC_DEFINE([CHOWN_CHANGE_TIME_BUG], [1], [Define to 1 if chown fails
+ to change ctime when at least one argument was not -1.])
+ REPLACE_CHOWN=1
+ ;;
+ esac
+ fi
+])
+
+# Determine whether chown follows symlinks (it should).
+AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK],
+[
+ AC_CACHE_CHECK(
+ [whether chown dereferences symlinks],
+ [gl_cv_func_chown_follows_symlink],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+ ]])],
+ [gl_cv_func_chown_follows_symlink=yes],
+ [gl_cv_func_chown_follows_symlink=no],
+ [gl_cv_func_chown_follows_symlink=yes]
+ )
+ ]
+ )
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ AC_DEFINE([CHOWN_MODIFIES_SYMLINK], [1],
+ [Define if chown modifies symlinks.])
+ fi
+])
diff --git a/gl/m4/getcwd-path-max.m4 b/gl/m4/getcwd-path-max.m4
index 2cefc00a..0ae3e1e8 100644
--- a/gl/m4/getcwd-path-max.m4
+++ b/gl/m4/getcwd-path-max.m4
@@ -1,4 +1,4 @@
-# serial 21
+# serial 22
# Check for several getcwd bugs with long file names.
# If so, arrange to compile the wrapper function.
@@ -111,12 +111,20 @@ main ()
/* If mkdir or chdir fails, it could be that this system cannot create
any file with an absolute name longer than PATH_MAX, such as cygwin.
If so, leave fail as 0, because the current working directory can't
- be too long for getcwd if it can't even be created. For other
- errors, be pessimistic and consider that as a failure, too. */
+ be too long for getcwd if it can't even be created. On Linux with
+ the 9p file system, mkdir fails with error EINVAL when cwd_len gets
+ too long; ignore this failure because the getcwd() system call
+ produces good results whereas the gnulib substitute calls getdents64
+ which fails with error EPROTO.
+ For other errors, be pessimistic and consider that as a failure,
+ too. */
if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
{
if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
- fail = 20;
+ #ifdef __linux__
+ if (! (errno == EINVAL))
+ #endif
+ fail = 20;
break;
}
diff --git a/gl/m4/gnulib-comp.m4 b/gl/m4/gnulib-comp.m4
index d4e06db1..1e73baac 100644
--- a/gl/m4/gnulib-comp.m4
+++ b/gl/m4/gnulib-comp.m4
@@ -48,6 +48,7 @@ AC_DEFUN([gl_EARLY],
# Code from module alloca-opt:
# Code from module areadlink-with-size:
# Code from module argp:
+ # Code from module array-list:
# Code from module assure:
# Code from module at-internal:
# Code from module bitrotate:
@@ -58,6 +59,7 @@ AC_DEFUN([gl_EARLY],
# Code from module canonicalize-lgpl:
# Code from module chdir:
# Code from module chdir-long:
+ # Code from module chown:
# Code from module clock-time:
# Code from module cloexec:
# Code from module close:
@@ -114,7 +116,10 @@ AC_DEFUN([gl_EARLY],
# Code from module gnupload:
# Code from module hard-locale:
# Code from module hash:
+ # Code from module hash-map:
# Code from module hash-pjw:
+ # Code from module hash-pjw-bare:
+ # Code from module hash-set:
# Code from module hash-triple:
# Code from module havelib:
# Code from module idpriv-drop:
@@ -125,9 +130,12 @@ AC_DEFUN([gl_EARLY],
# Code from module langinfo:
# Code from module largefile:
AC_REQUIRE([AC_SYS_LARGEFILE])
+ # Code from module lchown:
# Code from module lib-ignore:
# Code from module libc-config:
# Code from module limits-h:
+ # Code from module linkedhash-list:
+ # Code from module list:
# Code from module localcharset:
# Code from module locale:
# Code from module localeconv:
@@ -137,6 +145,7 @@ AC_DEFUN([gl_EARLY],
# Code from module malloc-gnu:
# Code from module malloc-posix:
# Code from module malloca:
+ # Code from module map:
# Code from module mbrtowc:
# Code from module mbsinit:
# Code from module mbsrtowcs:
@@ -166,6 +175,7 @@ AC_DEFUN([gl_EARLY],
# Code from module progname:
# Code from module raise:
# Code from module rawmemchr:
+ # Code from module rbtree-list:
# Code from module readdir:
# Code from module readlink:
# Code from module realloc-posix:
@@ -178,6 +188,7 @@ AC_DEFUN([gl_EARLY],
# Code from module save-cwd:
# Code from module scratch_buffer:
# Code from module select:
+ # Code from module set:
# Code from module setenv:
# Code from module sigaction:
# Code from module signal:
@@ -206,6 +217,7 @@ AC_DEFUN([gl_EARLY],
# Code from module stdint:
# Code from module stdio:
# Code from module stdlib:
+ # Code from module stdopen:
# Code from module strcase:
# Code from module strcasestr:
# Code from module strcasestr-simple:
@@ -252,7 +264,11 @@ AC_DEFUN([gl_EARLY],
# Code from module xalloc-die:
# Code from module xalloc-oversized:
# Code from module xgetcwd:
+ # Code from module xlist:
+ # Code from module xmap:
+ # Code from module xset:
# Code from module xsize:
+ # Code from module xstdopen:
# Code from module xstrndup:
# Code from module xvasprintf:
])
@@ -305,6 +321,14 @@ AC_SUBST([LTALLOCA])
AC_LIBOBJ([chdir-long])
gl_PREREQ_CHDIR_LONG
fi
+ gl_FUNC_CHOWN
+ if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+ AC_LIBOBJ([chown])
+ fi
+ if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+ AC_LIBOBJ([fchown-stub])
+ fi
+ gl_UNISTD_MODULE_INDICATOR([chown])
gl_CLOCK_TIME
gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
gl_FUNC_CLOSE
@@ -498,6 +522,11 @@ AC_SUBST([LTALLOCA])
gl_SYS_IOCTL_MODULE_INDICATOR([ioctl])
gl_LANGINFO_H
AC_REQUIRE([gl_LARGEFILE])
+ gl_FUNC_LCHOWN
+ if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+ AC_LIBOBJ([lchown])
+ fi
+ gl_UNISTD_MODULE_INDICATOR([lchown])
gl_IGNORE_UNUSED_LIBRARIES
gl___INLINE
gl_LIMITS_H
@@ -1055,6 +1084,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/cdefs.h
lib/chdir-long.c
lib/chdir-long.h
+ lib/chown.c
lib/cloexec.c
lib/cloexec.h
lib/close.c
@@ -1076,6 +1106,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/exitfail.c
lib/exitfail.h
lib/fchdir.c
+ lib/fchown-stub.c
lib/fcntl.c
lib/fcntl.in.h
lib/fd-hook.c
@@ -1119,6 +1150,37 @@ AC_DEFUN([gl_FILE_LIST], [
lib/gettext.h
lib/gettime.c
lib/gettimeofday.c
+ lib/gl_anyhash1.h
+ lib/gl_anyhash2.h
+ lib/gl_anyhash_primes.h
+ lib/gl_anylinked_list1.h
+ lib/gl_anylinked_list2.h
+ lib/gl_anyrbtree_list1.h
+ lib/gl_anyrbtree_list2.h
+ lib/gl_anytree_list1.h
+ lib/gl_anytree_list2.h
+ lib/gl_array_list.c
+ lib/gl_array_list.h
+ lib/gl_hash_map.c
+ lib/gl_hash_map.h
+ lib/gl_hash_set.c
+ lib/gl_hash_set.h
+ lib/gl_linkedhash_list.c
+ lib/gl_linkedhash_list.h
+ lib/gl_list.c
+ lib/gl_list.h
+ lib/gl_map.c
+ lib/gl_map.h
+ lib/gl_rbtree_list.c
+ lib/gl_rbtree_list.h
+ lib/gl_set.c
+ lib/gl_set.h
+ lib/gl_xlist.c
+ lib/gl_xlist.h
+ lib/gl_xmap.c
+ lib/gl_xmap.h
+ lib/gl_xset.c
+ lib/gl_xset.h
lib/glob-libc.h
lib/glob.c
lib/glob.in.h
@@ -1130,6 +1192,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/glthread/threadlib.c
lib/hard-locale.c
lib/hard-locale.h
+ lib/hash-pjw-bare.c
+ lib/hash-pjw-bare.h
lib/hash-pjw.c
lib/hash-pjw.h
lib/hash-triple.c
@@ -1143,6 +1207,7 @@ AC_DEFUN([gl_FILE_LIST], [
lib/ioctl.c
lib/itold.c
lib/langinfo.in.h
+ lib/lchown.c
lib/libc-config.h
lib/limits.in.h
lib/localcharset.c
@@ -1244,6 +1309,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/stdio-write.c
lib/stdio.in.h
lib/stdlib.in.h
+ lib/stdopen.c
+ lib/stdopen.h
lib/str-two-way.h
lib/strcasecmp.c
lib/strcasestr.c
@@ -1307,6 +1374,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/xmalloc.c
lib/xsize.c
lib/xsize.h
+ lib/xstdopen.c
+ lib/xstdopen.h
lib/xstrndup.c
lib/xstrndup.h
lib/xvasprintf.c
@@ -1321,6 +1390,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/builtin-expect.m4
m4/canonicalize.m4
m4/chdir-long.m4
+ m4/chown.m4
m4/clock_time.m4
m4/close.m4
m4/closedir.m4
@@ -1379,6 +1449,7 @@ AC_DEFUN([gl_FILE_LIST], [
m4/ioctl.m4
m4/langinfo_h.m4
m4/largefile.m4
+ m4/lchown.m4
m4/lib-ignore.m4
m4/lib-ld.m4
m4/lib-link.m4
diff --git a/gl/m4/lchown.m4 b/gl/m4/lchown.m4
new file mode 100644
index 00000000..3d524199
--- /dev/null
+++ b/gl/m4/lchown.m4
@@ -0,0 +1,38 @@
+# serial 17
+# Determine whether we need the lchown wrapper.
+
+dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2019 Free Software Foundation,
+dnl Inc.
+
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering.
+dnl Provide lchown on systems that lack it, and work around bugs
+dnl on systems that have it.
+
+AC_DEFUN([gl_FUNC_LCHOWN],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_CHOWN])
+ AC_CHECK_FUNCS_ONCE([lchmod])
+ AC_CHECK_FUNCS([lchown])
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ else
+ dnl Trailing slash and ctime bugs in chown also occur in lchown.
+ case "$gl_cv_func_chown_slash_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ case "$gl_cv_func_chown_ctime_works" in
+ *yes) ;;
+ *)
+ REPLACE_LCHOWN=1
+ ;;
+ esac
+ fi
+])
diff --git a/gl/m4/math_h.m4 b/gl/m4/math_h.m4
index 7e798314..3d5af84f 100644
--- a/gl/m4/math_h.m4
+++ b/gl/m4/math_h.m4
@@ -1,4 +1,4 @@
-# math_h.m4 serial 116
+# math_h.m4 serial 119
dnl Copyright (C) 2007-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -268,8 +268,10 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
REPLACE_COSF=0; AC_SUBST([REPLACE_COSF])
REPLACE_COSHF=0; AC_SUBST([REPLACE_COSHF])
REPLACE_EXPF=0; AC_SUBST([REPLACE_EXPF])
+ REPLACE_EXPL=0; AC_SUBST([REPLACE_EXPL])
REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
+ REPLACE_EXPM1L=0; AC_SUBST([REPLACE_EXPM1L])
REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L])
REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL])
@@ -318,6 +320,7 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER])
REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF])
REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL])
+ REPLACE_RINTL=0; AC_SUBST([REPLACE_RINTL])
REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
diff --git a/gl/m4/printf.m4 b/gl/m4/printf.m4
index 1db13bf8..cbf6ae48 100644
--- a/gl/m4/printf.m4
+++ b/gl/m4/printf.m4
@@ -1,4 +1,4 @@
-# printf.m4 serial 59
+# printf.m4 serial 60
dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -79,6 +79,8 @@ changequote(,)dnl
netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
gl_cv_func_printf_sizes_c99="guessing no";;
netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_sizes_c99="guessing yes";;
changequote([,])dnl
# Guess yes on MSVC, no on mingw.
mingw*) AC_EGREP_CPP([Known], [
@@ -132,17 +134,20 @@ int main ()
[gl_cv_func_printf_long_double=yes],
[gl_cv_func_printf_long_double=no],
[case "$host_os" in
- beos*) gl_cv_func_printf_long_double="guessing no";;
- # Guess yes on MSVC, no on mingw.
- mingw*) AC_EGREP_CPP([Known], [
+ # Guess no on BeOS.
+ beos*) gl_cv_func_printf_long_double="guessing no";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_long_double="guessing yes";;
+ # Guess yes on MSVC, no on mingw.
+ mingw*) AC_EGREP_CPP([Known], [
#ifdef _MSC_VER
Known
#endif
- ],
- [gl_cv_func_printf_long_double="guessing yes"],
- [gl_cv_func_printf_long_double="guessing no"])
- ;;
- *) gl_cv_func_printf_long_double="guessing yes";;
+ ],
+ [gl_cv_func_printf_long_double="guessing yes"],
+ [gl_cv_func_printf_long_double="guessing no"])
+ ;;
+ *) gl_cv_func_printf_long_double="guessing yes";;
esac
])
])
@@ -250,6 +255,8 @@ changequote(,)dnl
netbsd*) gl_cv_func_printf_infinite="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_infinite="guessing no";;
changequote([,])dnl
# Guess yes on MSVC, no on mingw.
mingw*) AC_EGREP_CPP([Known], [
@@ -456,6 +463,8 @@ changequote(,)dnl
# Guess yes on HP-UX >= 11.
hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_infinite_long_double="guessing no";;
changequote([,])dnl
# Guess yes on MSVC, no on mingw.
mingw*) AC_EGREP_CPP([Known], [
@@ -566,6 +575,8 @@ int main ()
[gl_cv_func_printf_directive_a="guessing yes"],
[gl_cv_func_printf_directive_a="guessing no"])
;;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_directive_a="guessing no";;
# Guess no on native Windows.
mingw*) gl_cv_func_printf_directive_a="guessing no";;
# If we don't know, assume the worst.
@@ -623,6 +634,8 @@ changequote(,)dnl
# Guess yes on Solaris >= 2.10.
solaris2.[1-9][0-9]*) gl_cv_func_printf_directive_f="guessing yes";;
solaris*) gl_cv_func_printf_directive_f="guessing no";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_directive_f="guessing no";;
changequote([,])dnl
# Guess yes on MSVC, no on mingw.
mingw*) AC_EGREP_CPP([Known], [
@@ -688,9 +701,11 @@ int main ()
[gl_cv_func_printf_directive_n=yes],
[gl_cv_func_printf_directive_n=no],
[case "$host_os" in
- # Guess no on native Windows.
- mingw*) gl_cv_func_printf_directive_n="guessing no";;
- *) gl_cv_func_printf_directive_n="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_directive_n="guessing no";;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_printf_directive_n="guessing no";;
+ *) gl_cv_func_printf_directive_n="guessing yes";;
esac
])
])
@@ -766,14 +781,16 @@ int main ()
[
changequote(,)dnl
case "$host_os" in
- openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
- irix*) gl_cv_func_printf_directive_ls="guessing no";;
- solaris*) gl_cv_func_printf_directive_ls="guessing no";;
- cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
- beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
- # Guess yes on native Windows.
- mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
- *) gl_cv_func_printf_directive_ls="guessing yes";;
+ openbsd*) gl_cv_func_printf_directive_ls="guessing no";;
+ irix*) gl_cv_func_printf_directive_ls="guessing no";;
+ solaris*) gl_cv_func_printf_directive_ls="guessing no";;
+ cygwin*) gl_cv_func_printf_directive_ls="guessing no";;
+ beos* | haiku*) gl_cv_func_printf_directive_ls="guessing no";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_directive_ls="guessing no";;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_printf_directive_ls="guessing yes";;
+ *) gl_cv_func_printf_directive_ls="guessing yes";;
esac
changequote([,])dnl
])
@@ -810,11 +827,13 @@ int main ()
changequote(,)dnl
case "$host_os" in
netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
- gl_cv_func_printf_positions="guessing no";;
- beos*) gl_cv_func_printf_positions="guessing no";;
- # Guess no on native Windows.
- mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
- *) gl_cv_func_printf_positions="guessing yes";;
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_positions="guessing yes";;
+ # Guess no on native Windows.
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
esac
changequote([,])dnl
])
@@ -849,11 +868,13 @@ int main ()
[
changequote(,)dnl
case "$host_os" in
- cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
- netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
- # Guess no on native Windows.
- mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
- *) gl_cv_func_printf_flag_grouping="guessing yes";;
+ cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
+ netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_flag_grouping="guessing no";;
+ # Guess no on native Windows.
+ mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
+ *) gl_cv_func_printf_flag_grouping="guessing yes";;
esac
changequote([,])dnl
])
@@ -890,14 +911,16 @@ int main ()
[
changequote(,)dnl
case "$host_os" in
- # Guess yes on HP-UX 11.
- hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
- # Guess no on HP-UX 10 and older.
- hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
- # Guess yes on native Windows.
- mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
- # Guess yes otherwise.
- *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess yes on HP-UX 11.
+ hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess no on HP-UX 10 and older.
+ hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess yes otherwise.
+ *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
esac
changequote([,])dnl
])
@@ -935,14 +958,16 @@ int main ()
[
changequote(,)dnl
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
- # Guess yes on BeOS.
- beos*) gl_cv_func_printf_flag_zero="guessing yes";;
- # Guess no on native Windows.
- mingw*) gl_cv_func_printf_flag_zero="guessing no";;
- # If we don't know, assume the worst.
- *) gl_cv_func_printf_flag_zero="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_flag_zero="guessing no";;
+ # Guess no on native Windows.
+ mingw*) gl_cv_func_printf_flag_zero="guessing no";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_flag_zero="guessing no";;
esac
changequote([,])dnl
])
@@ -995,10 +1020,12 @@ int main ()
changequote(,)dnl
case "$host_os" in
# Guess no only on Solaris, native Windows, and BeOS systems.
- solaris*) gl_cv_func_printf_precision="guessing no" ;;
- mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
- beos*) gl_cv_func_printf_precision="guessing no" ;;
- *) gl_cv_func_printf_precision="guessing yes" ;;
+ solaris*) gl_cv_func_printf_precision="guessing no" ;;
+ mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
+ beos*) gl_cv_func_printf_precision="guessing no" ;;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_printf_precision="guessing yes" ;;
+ *) gl_cv_func_printf_precision="guessing yes" ;;
esac
changequote([,])dnl
])
@@ -1095,28 +1122,30 @@ changequote([,])dnl
if test "$gl_cv_func_printf_enomem" = "guessing no"; then
changequote(,)dnl
case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on Solaris.
- solaris*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on AIX.
- aix*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on HP-UX/hppa.
- hpux*) case "$host_cpu" in
- hppa*) gl_cv_func_printf_enomem="guessing yes";;
- *) gl_cv_func_printf_enomem="guessing no";;
- esac
- ;;
- # Guess yes on IRIX.
- irix*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on OSF/1.
- osf*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on BeOS.
- beos*) gl_cv_func_printf_enomem="guessing yes";;
- # Guess yes on Haiku.
- haiku*) gl_cv_func_printf_enomem="guessing yes";;
- # If we don't know, assume the worst.
- *) gl_cv_func_printf_enomem="guessing no";;
+ # Guess yes on glibc systems.
+ *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Solaris.
+ solaris*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on AIX.
+ aix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on HP-UX/hppa.
+ hpux*) case "$host_cpu" in
+ hppa*) gl_cv_func_printf_enomem="guessing yes";;
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+ ;;
+ # Guess yes on IRIX.
+ irix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on OSF/1.
+ osf*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Haiku.
+ haiku*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_printf_enomem="guessing no";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_enomem="guessing no";;
esac
changequote([,])dnl
fi
@@ -1208,6 +1237,8 @@ changequote(,)dnl
netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
# Guess no on native Windows.
mingw*) gl_cv_func_snprintf_truncation_c99="guessing no";;
# If we don't know, assume the worst.
@@ -1299,6 +1330,8 @@ changequote(,)dnl
netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_snprintf_retval_c99="guessing yes";;
changequote([,])dnl
# Guess yes on MSVC, no on mingw.
mingw*) AC_EGREP_CPP([Known], [
@@ -1391,6 +1424,8 @@ changequote(,)dnl
netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess no on Android.
+ linux*-android*) gl_cv_func_snprintf_directive_n="guessing no";;
# Guess no on native Windows.
mingw*) gl_cv_func_snprintf_directive_n="guessing no";;
# If we don't know, assume the worst.
@@ -1440,9 +1475,11 @@ int main()
[gl_cv_func_snprintf_size1=yes],
[gl_cv_func_snprintf_size1=no],
[case "$host_os" in
- # Guess yes on native Windows.
- mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
- *) gl_cv_func_snprintf_size1="guessing yes" ;;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ # Guess yes on native Windows.
+ mingw*) gl_cv_func_snprintf_size1="guessing yes" ;;
+ *) gl_cv_func_snprintf_size1="guessing yes" ;;
esac
])
])
@@ -1540,6 +1577,8 @@ changequote(,)dnl
netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# Guess yes on BeOS.
beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on Android.
+ linux*-android*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# Guess yes on native Windows.
mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
# If we don't know, assume the worst.
@@ -1626,6 +1665,7 @@ dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? .
dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
+dnl Android 4.3 . . # # # # # # . # . # . # . . . # . .
dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . .
dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
diff --git a/gl/m4/threadlib.m4 b/gl/m4/threadlib.m4
index f7841b60..bfc3bac8 100644
--- a/gl/m4/threadlib.m4
+++ b/gl/m4/threadlib.m4
@@ -1,4 +1,4 @@
-# threadlib.m4 serial 15
+# threadlib.m4 serial 16
dnl Copyright (C) 2005-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -151,36 +151,6 @@ int main ()
*" -static "*) gl_cv_have_weak=no ;;
esac
])
- dnl Check whether the linker supports the --as-needed/--no-as-needed options.
- dnl Assume GCC, so that we can use the -Wl option.
- AC_CACHE_CHECK([whether the linker supports --as-needed],
- [gl_cv_linker_have_as_needed],
- [if test -n "$GCC"; then
- gl_saved_ldflags="$LDFLAGS"
- LDFLAGS="$gl_saved_ldflags -Wl,--as-needed -Wl,--no-as-needed"
- AC_LINK_IFELSE([AC_LANG_PROGRAM()],
- [gl_cv_linker_have_as_needed=yes],
- [gl_cv_linker_have_as_needed=no])
- LDFLAGS="$gl_saved_ldflags"
- else
- gl_cv_linker_have_as_needed=no
- fi
- ])
- dnl Check whether the linker supports the --push-state/--pop-state options.
- dnl Assume GCC, so that we can use the -Wl option.
- AC_CACHE_CHECK([whether the linker supports --push-state],
- [gl_cv_linker_have_push_state],
- [if test -n "$GCC"; then
- gl_saved_ldflags="$LDFLAGS"
- LDFLAGS="$gl_saved_ldflags -Wl,--push-state -Wl,--pop-state"
- AC_LINK_IFELSE([AC_LANG_PROGRAM()],
- [gl_cv_linker_have_push_state=yes],
- [gl_cv_linker_have_push_state=no])
- LDFLAGS="$gl_saved_ldflags"
- else
- gl_cv_linker_have_push_state=no
- fi
- ])
if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
# On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
# it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
@@ -259,32 +229,6 @@ int main ()
[Define if references to the POSIX multithreading library should be made weak.])
LIBTHREAD=
LTLIBTHREAD=
- dnl On platforms where GCC enables --as-needed by default, attempt
- dnl to make sure that LIBMULTITHREAD really links with -lpthread.
- dnl Otherwise linking with LIBMULTITHREAD has no effect; then
- dnl the weak symbols are not defined and thus evaluate to NULL.
- case "$LIBMULTITHREAD" in
- "") ;;
- -pthread)
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--push-state -Wl,--no-as-needed -lpthread -Wl,--pop-state"
- else
- LIBMULTITHREAD="$LIBMULTITHREAD -Wl,--no-as-needed -lpthread"
- fi
- fi
- ;;
- *)
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- ;;
- esac
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
fi
@@ -317,18 +261,6 @@ int main ()
[Define if references to the old Solaris multithreading library should be made weak.])
LIBTHREAD=
LTLIBTHREAD=
- dnl On platforms where GCC enables --as-needed by default, attempt
- dnl to make sure that LIBMULTITHREAD really links with -lthread.
- dnl Otherwise linking with LIBMULTITHREAD has no effect; then
- dnl the weak symbols are not defined and thus evaluate to NULL.
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
fi
@@ -357,18 +289,6 @@ int main ()
[Define if references to the GNU Pth multithreading library should be made weak.])
LIBTHREAD=
LTLIBTHREAD=
- dnl On platforms where GCC enables --as-needed by default, attempt
- dnl to make sure that LIBMULTITHREAD really links with -lpth.
- dnl Otherwise linking with LIBMULTITHREAD has no effect; then
- dnl the weak symbols are not defined and thus evaluate to NULL.
- if test $gl_cv_linker_have_as_needed = yes; then
- if test $gl_cv_linker_have_push_state = yes; then
- LIBMULTITHREAD="-Wl,--push-state -Wl,--no-as-needed $LIBMULTITHREAD -Wl,--pop-state"
- else
- LIBMULTITHREAD="-Wl,--no-as-needed $LIBMULTITHREAD"
- fi
- fi
- # TODO: May need to modify LTLIBMULTITHREAD similarly.
fi
fi
else
diff --git a/gl/po/POTFILES.in b/gl/po/POTFILES.in
index 64bd989e..91ff8514 100644
--- a/gl/po/POTFILES.in
+++ b/gl/po/POTFILES.in
@@ -57,6 +57,7 @@ gl/lib/canonicalize.h
gl/lib/cdefs.h
gl/lib/chdir-long.c
gl/lib/chdir-long.h
+gl/lib/chown.c
gl/lib/cloexec.c
gl/lib/cloexec.h
gl/lib/close.c
@@ -78,6 +79,7 @@ gl/lib/error.h
gl/lib/exitfail.c
gl/lib/exitfail.h
gl/lib/fchdir.c
+gl/lib/fchown-stub.c
gl/lib/fcntl.c
gl/lib/fcntl.in.h
gl/lib/fd-hook.c
@@ -121,6 +123,37 @@ gl/lib/getprogname.h
gl/lib/gettext.h
gl/lib/gettime.c
gl/lib/gettimeofday.c
+gl/lib/gl_anyhash1.h
+gl/lib/gl_anyhash2.h
+gl/lib/gl_anyhash_primes.h
+gl/lib/gl_anylinked_list1.h
+gl/lib/gl_anylinked_list2.h
+gl/lib/gl_anyrbtree_list1.h
+gl/lib/gl_anyrbtree_list2.h
+gl/lib/gl_anytree_list1.h
+gl/lib/gl_anytree_list2.h
+gl/lib/gl_array_list.c
+gl/lib/gl_array_list.h
+gl/lib/gl_hash_map.c
+gl/lib/gl_hash_map.h
+gl/lib/gl_hash_set.c
+gl/lib/gl_hash_set.h
+gl/lib/gl_linkedhash_list.c
+gl/lib/gl_linkedhash_list.h
+gl/lib/gl_list.c
+gl/lib/gl_list.h
+gl/lib/gl_map.c
+gl/lib/gl_map.h
+gl/lib/gl_rbtree_list.c
+gl/lib/gl_rbtree_list.h
+gl/lib/gl_set.c
+gl/lib/gl_set.h
+gl/lib/gl_xlist.c
+gl/lib/gl_xlist.h
+gl/lib/gl_xmap.c
+gl/lib/gl_xmap.h
+gl/lib/gl_xset.c
+gl/lib/gl_xset.h
gl/lib/glob-libc.h
gl/lib/glob.c
gl/lib/glob.in.h
@@ -132,6 +165,8 @@ gl/lib/glthread/lock.h
gl/lib/glthread/threadlib.c
gl/lib/hard-locale.c
gl/lib/hard-locale.h
+gl/lib/hash-pjw-bare.c
+gl/lib/hash-pjw-bare.h
gl/lib/hash-pjw.c
gl/lib/hash-pjw.h
gl/lib/hash-triple.c
@@ -145,6 +180,7 @@ gl/lib/intprops.h
gl/lib/ioctl.c
gl/lib/itold.c
gl/lib/langinfo.in.h
+gl/lib/lchown.c
gl/lib/libc-config.h
gl/lib/limits.in.h
gl/lib/localcharset.c
@@ -246,6 +282,8 @@ gl/lib/stdio-read.c
gl/lib/stdio-write.c
gl/lib/stdio.in.h
gl/lib/stdlib.in.h
+gl/lib/stdopen.c
+gl/lib/stdopen.h
gl/lib/str-two-way.h
gl/lib/strcasecmp.c
gl/lib/strcasestr.c
@@ -309,6 +347,8 @@ gl/lib/xgetcwd.h
gl/lib/xmalloc.c
gl/lib/xsize.c
gl/lib/xsize.h
+gl/lib/xstdopen.c
+gl/lib/xstdopen.h
gl/lib/xstrndup.c
gl/lib/xstrndup.h
gl/lib/xvasprintf.c
diff --git a/gl/po/af.po b/gl/po/af.po
index 83d582e8..153c9a1d 100644
--- a/gl/po/af.po
+++ b/gl/po/af.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: coreutils 5.2.1\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2004-03-17 11:58+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -46,32 +46,32 @@ msgstr ""
"Verpligte parameters vir langformaat opsies is ook verpligtend vir "
"kortformaat opsies.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Gebruik so: %s [OPSIE]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Probeer `%s --help' vir meer inligting.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"Rapporteer foute aan <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Onbekende stelselfout"
@@ -247,6 +247,11 @@ msgstr "fout in soektog met reëlmatige uitdrukking"
msgid "memory exhausted"
msgstr "geheue uitgeput"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "ongeldige parameter %s vir %s"
diff --git a/gl/po/be.po b/gl/po/be.po
index 6ba2f1fb..bb57fcb6 100644
--- a/gl/po/be.po
+++ b/gl/po/be.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: coreutils 5.0.91\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2003-10-30 01:10+0200\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n"
@@ -47,32 +47,32 @@ msgid ""
"optional for any corresponding short options."
msgstr "Довады, абавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð´Ð»Ñ Ð´Ð¾ÑžÐ³Ñ–Ñ… выбараў, абавÑÐ·ÐºÐ¾Ð²Ñ‹Ñ Ð¹ Ð´Ð»Ñ ÐºÐ°Ñ€Ð¾Ñ‚ÐºÑ–Ñ….\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "ВыкарыÑтаньне: %s [ВЫБÐР]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "ПаÑпрабуйце \"%s --help\" Ð´Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆ падрабÑзных зьвеÑтак.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"ПаведамлÑйце пра памылкі на <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ ÑÑ‹ÑÑ‚ÑÐ¼Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°"
@@ -248,6 +248,11 @@ msgstr "памылка ў пошуку звычайнага выразу"
msgid "memory exhausted"
msgstr "памÑць вычарпана"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "нерÑчаіÑны довад %s Ð´Ð»Ñ %s"
diff --git a/gl/po/bg.gmo b/gl/po/bg.gmo
index ca402813..f8852fe3 100644
--- a/gl/po/bg.gmo
+++ b/gl/po/bg.gmo
Binary files differ
diff --git a/gl/po/bg.po b/gl/po/bg.po
index 06c78cb4..41b5b159 100644
--- a/gl/po/bg.po
+++ b/gl/po/bg.po
@@ -1,88 +1,85 @@
-# translation of coreutils.bg.po to Bulgarian
-# Message catalog for coreutils
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the coreutils package.
-# Anton Zinoviev <zinoviev@debian.org>, 2003,2004.
-#
+# Bulgarian translation of GNU gnulib po-file.
+# Copyright (C) 2019 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gnulib package.
+# Alexander Shopov <ash@kambanaria.org>, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: coreutils 5.90\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2005-10-12 21:41+0300\n"
-"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 18:14+0200\n"
+"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
+"Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
#: gl/lib/argp-help.c:158
#, c-format
msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
-msgstr ""
+msgstr "„ARGP_HELP_FMT“: ÑтойноÑтта %s е по-малка или равна на %s"
#: gl/lib/argp-help.c:234
#, c-format
msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr ""
+msgstr "%.*s: параметърът „ARGP_HELP_FMT“ изиÑква ÑтойноÑÑ‚"
#: gl/lib/argp-help.c:244
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr ""
+msgstr "%.*s: непознат параметър „ARGP_HELP_FMT“"
#: gl/lib/argp-help.c:257
#, c-format
msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr ""
+msgstr "Грешки в „ARGP_HELP_FMT“: %s"
#: gl/lib/argp-help.c:1238
-#, fuzzy
msgid ""
"Mandatory or optional arguments to long options are also mandatory or "
"optional for any corresponding short options."
msgstr ""
-"Ðргументите, задължителни за дългите опции, Ñа задължителни и за къÑите.\n"
+"Ðргументите, задължителните или незадължителни за дългите опции, Ñа "
+"Ñъответно задължителни или незадължителни и за кратките опции."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
-msgstr ""
+msgstr "Използване:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
-msgstr ""
+msgstr " или: "
-#: gl/lib/argp-help.c:1641
-#, fuzzy
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
-msgstr "Използване: %s [ОПЦИЯ]...\n"
+msgstr " [ОПЦИЯ…]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
-msgstr "Използвайте \"%s --help\" за повече информациÑ.\n"
+msgstr "За повече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñ‚Ðµ „%s --help“ или „%s --usage“.\n"
-#: gl/lib/argp-help.c:1696
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1698
+#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
-"\n"
-"Съобщавайте за програмни грешки на <%s>.\n"
+"Съобщавайте за програмни грешки на %s.\n"
+"За грешки в българÑÐºÐ¸Ñ Ð¿Ñ€ÐµÐ²Ð¾Ð´ на <dict@fsa-bg.org>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
-msgstr "Ðепозната ÑиÑтемна грешка"
+msgstr "ÐеизвеÑтна ÑиÑтемна грешка"
#: gl/lib/argp-parse.c:91
msgid "give this help list"
-msgstr ""
+msgstr "извеждане на тази Ñправка"
#: gl/lib/argp-parse.c:92
msgid "give a short usage message"
-msgstr ""
+msgstr "извеждане на кратко Ñъобщение за използването"
#: gl/lib/argp-parse.c:93
msgid "NAME"
@@ -90,258 +87,383 @@ msgstr "ИМЕ"
#: gl/lib/argp-parse.c:94
msgid "set the program name"
-msgstr ""
+msgstr "задаване на името на програмата"
#: gl/lib/argp-parse.c:95
msgid "SECS"
-msgstr ""
+msgstr "СЕКУÐДИ"
#: gl/lib/argp-parse.c:96
msgid "hang for SECS seconds (default 3600)"
-msgstr ""
+msgstr "Ñпиране за толкова СЕКУÐДИ (Ñтандартно е 3600)"
#: gl/lib/argp-parse.c:154
-#, fuzzy
msgid "print program version"
-msgstr "грешка при четене"
+msgstr "извеждане на верÑиÑта на програмата"
#: gl/lib/argp-parse.c:171
msgid "(PROGRAM ERROR) No version known!?"
-msgstr ""
+msgstr "ГРЕШКÐ: ÐеизвеÑтна верÑиÑ!"
#: gl/lib/argp-parse.c:624
-#, fuzzy, c-format
+#, c-format
msgid "%s: Too many arguments\n"
-msgstr "%s: твърде много редове Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð¸ Ñуми"
+msgstr "%s: Твърде много аргументи\n"
#: gl/lib/argp-parse.c:770
msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr ""
+msgstr "ГРЕШКÐ: Ðепозната опциÑ, а Ñ‚Ñ€Ñбва да Ñе разпознава!"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: опциÑта \"%s\" е двуÑмиÑлена\n"
+msgstr "%s: опциÑта „%s%s“ не е еднозначна\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: опциÑта \"%s\" е двуÑмиÑлена\n"
+msgstr "%s: опциÑта „%s%s“ не е еднозначна. ВъзможноÑти:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: непозната Ð¾Ð¿Ñ†Ð¸Ñ \"%c%s\"\n"
+msgstr "%s: непозната Ð¾Ð¿Ñ†Ð¸Ñ â€ž%s%s“\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: опциÑта \"%c%s\" не допуÑка аргумент\n"
+msgstr "%s: опциÑта „%s%s“ Ñе използва без аргументи\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: опциÑта \"%s\" изиÑква аргумент\n"
+msgstr "%s: опциÑта „%s%s“ изиÑква аргумент\n"
#: gl/lib/getopt.c:621
-#, fuzzy, c-format
+#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: неправилна Ð¾Ð¿Ñ†Ð¸Ñ -- %c\n"
+msgstr "%s: неправилна Ð¾Ð¿Ñ†Ð¸Ñ â€” „%c“\n"
#: gl/lib/getopt.c:636 gl/lib/getopt.c:682
-#, fuzzy, c-format
+#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð·Ð¸Ñква аргумент -- %c\n"
+msgstr "%s: опциÑта изиÑква аргумент — „%c“\n"
#: gl/lib/openat-die.c:38
#, c-format
msgid "unable to record current working directory"
-msgstr "не може да Ñе запомни текущиÑÑ‚ работен каталог"
+msgstr "текущата работна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð½Ðµ може да Ñе запише"
#: gl/lib/openat-die.c:57
#, c-format
msgid "failed to return to initial working directory"
-msgstr "невъзможно връщане в Ð¿ÑŠÑ€Ð²Ð¾Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚ÐµÐ½ каталог"
+msgstr "не може да Ñе върне към първоначалната работна директориÑ"
#: gl/lib/regcomp.c:135
msgid "Success"
-msgstr ""
+msgstr "УÑпех"
#: gl/lib/regcomp.c:138
msgid "No match"
-msgstr ""
+msgstr "ÐÑма ÑъвпадениÑ"
#: gl/lib/regcomp.c:141
-#, fuzzy
msgid "Invalid regular expression"
-msgstr "%s: неправилен регулÑрен израз: %s"
+msgstr "Ðеправилен регулÑрен израз"
#: gl/lib/regcomp.c:144
-#, fuzzy
msgid "Invalid collation character"
-msgstr "неправилен ÐºÐ»Ð°Ñ Ð¾Ñ‚ Ñимволи %s"
+msgstr "Ðеправилен знак за подредба"
#: gl/lib/regcomp.c:147
-#, fuzzy
msgid "Invalid character class name"
-msgstr "неправилен ÐºÐ»Ð°Ñ Ð¾Ñ‚ Ñимволи %s"
+msgstr "Ðеправилно име на ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸"
#: gl/lib/regcomp.c:150
msgid "Trailing backslash"
-msgstr ""
+msgstr "Самотна „\\“ накраÑ"
#: gl/lib/regcomp.c:153
-#, fuzzy
msgid "Invalid back reference"
-msgstr "Ðеправилен диапазон от Ñтраници %s"
+msgstr "Ðеправилна препратка към Ñъвпадение"
#: gl/lib/regcomp.c:156
msgid "Unmatched [, [^, [:, [., or [="
-msgstr ""
+msgstr "„[“, „[^“, „[:“, „[.“ или „[=“ без еш"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr ""
+msgstr "„(“ или „\\(“ без еш"
#: gl/lib/regcomp.c:162
msgid "Unmatched \\{"
-msgstr ""
+msgstr "„\\{“ без еш"
#: gl/lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
-msgstr ""
+msgstr "Ðеправилно Ñъдържание в „\\{\\}“"
#: gl/lib/regcomp.c:168
-#, fuzzy
msgid "Invalid range end"
-msgstr "Ðеправилен диапазон от Ñтраници %s"
+msgstr "Ðеправилен край на диапазон"
#: gl/lib/regcomp.c:171
-#, fuzzy
msgid "Memory exhausted"
-msgstr "паметта е изчерпана"
+msgstr "Паметта Ñвърши"
#: gl/lib/regcomp.c:174
-#, fuzzy
msgid "Invalid preceding regular expression"
-msgstr "%s: неправилен регулÑрен израз: %s"
+msgstr "ПредхождащиÑÑ‚ регулÑрен израз е неправилен"
#: gl/lib/regcomp.c:177
-#, fuzzy
msgid "Premature end of regular expression"
-msgstr "грешка при Ñ‚ÑŠÑ€Ñене на регулÑрен израз"
+msgstr "Ранен край на регулÑрен израз"
#: gl/lib/regcomp.c:180
-#, fuzzy
msgid "Regular expression too big"
-msgstr "грешка при паÑването на регулÑÑ€Ð½Ð¸Ñ Ð¸Ð·Ñ€Ð°Ð·"
+msgstr "РегулÑрниÑÑ‚ израз е прекалено голÑм"
#: gl/lib/regcomp.c:183
msgid "Unmatched ) or \\)"
-msgstr ""
+msgstr "„)“ или „\\)“ без еш"
#: gl/lib/regcomp.c:676
-#, fuzzy
msgid "No previous regular expression"
-msgstr "грешка при Ñ‚ÑŠÑ€Ñене на регулÑрен израз"
+msgstr "ÐÑма предхождащ регулÑрен израз"
#: gl/lib/xalloc-die.c:34
msgid "memory exhausted"
msgstr "паметта е изчерпана"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "Ñтандартни файлови деÑкриптори"
+
#~ msgid "invalid argument %s for %s"
-#~ msgstr "недопуÑтим аргумент %s за %s"
+#~ msgstr "аргументът „%s“ на опциÑта „%s“ е неправилен"
#~ msgid "ambiguous argument %s for %s"
-#~ msgstr "двуÑмиÑлен аргумент %s за %s"
+#~ msgstr "аргументът „%s“ на опциÑта „%s“ не е еднозначен"
#~ msgid "Valid arguments are:"
-#~ msgstr "ДопуÑтими аргументи Ñа:"
+#~ msgstr "Възможните аргументи Ñа:"
+
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u побитови заделÑниÑ, оÑвободени Ñа %u (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u побитови задаваниÑ, кеширани Ñа %u (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u побитови изчиÑтваниÑ, кеширани Ñа %u (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u побитови проби, кеширани Ñа %u (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u побитови извежданиÑ\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "логаритмична хиÑтограма по брой\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "логаритмична хиÑтограма по размер\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "хиÑтограма по плътноÑÑ‚\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Побитова ÑтатиÑтика:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Ðатрупани Ð¸Ð·Ð¿ÑŠÐ»Ð½ÐµÐ½Ð¸Ñ = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "файлът ÑÑŠÑ ÑтатиÑтиките не може да Ñе прочете"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "неправилен размер на файла ÑÑŠÑ ÑтатиÑтиките\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "файлът ÑÑŠÑ ÑтатиÑтиките не може да Ñе запише"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "файлът ÑÑŠÑ ÑтатиÑтиките не може да Ñе отвори за запиÑ"
+
+#~ msgid "program error"
+#~ msgstr "програмна грешка"
+
+#~ msgid "stack overflow"
+#~ msgstr "препълване на Ñтека"
+
+#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
+#~ msgstr ""
+#~ "липÑва временна директориÑ, пробвайте да укажете такава в променливата "
+#~ "„TMPDIR“"
+
+#~ msgid "cannot create a temporary directory using template \"%s\""
+#~ msgstr "не може да Ñе Ñъздаде временна Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ð¾ шаблона „%s“"
+
+#~ msgid "cannot remove temporary file %s"
+#~ msgstr "временниÑÑ‚ файл „%s“ не може да Ñе изтрие"
+
+#~ msgid "cannot remove temporary directory %s"
+#~ msgstr "временната Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ â€ž%s“ не може да Ñе изтрие"
+
+#~ msgid "error closing file"
+#~ msgstr "грешка при затварÑне на файл"
#~ msgid "write error"
#~ msgstr "грешка при запиÑ"
-#, fuzzy
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "не може да Ñе отвори %s за четене"
+#~ msgid "preserving permissions for %s"
+#~ msgstr "запазване на правата за „%s“"
+
+#~ msgid "error while opening %s for reading"
+#~ msgstr "„%s“ не може да Ñе отвори за четене"
-#, fuzzy
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "не може да Ñе отвори %s за запиÑ"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "резервниÑÑ‚ файл „%s“ не може да Ñе отвори за запиÑ"
-#, fuzzy
-#~ msgid "error reading \"%s\""
-#~ msgstr "грешка при четене на %s"
+#~ msgid "error reading %s"
+#~ msgstr "грешка при четене на „%s“"
-#, fuzzy
-#~ msgid "error writing \"%s\""
-#~ msgstr "грешка при Ð·Ð°Ð¿Ð¸Ñ Ð² %s"
+#~ msgid "error writing %s"
+#~ msgstr "грешка при запиÑа на „%s“"
-#, fuzzy
-#~ msgid "error after reading \"%s\""
-#~ msgstr "грешка при четене на %s"
+#~ msgid "error after reading %s"
+#~ msgstr "грешка Ñлед четене на „%s“"
-#, fuzzy
#~ msgid "fdopen() failed"
-#~ msgstr "неуÑпешно отварÑне на файл"
+#~ msgstr "неуÑпешно отварÑне Ñ â€žfdopen()“"
+
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "ЛипÑва компилатор за C#, инÑталирайте „mono“"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "ЛипÑва виртуална машина за C#, инÑталирайте „mono“"
+
+#~ msgid "unbalanced ["
+#~ msgstr "„[“ без еш"
+
+#~ msgid "invalid character class"
+#~ msgstr "неправилен ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "ÐºÐ»Ð°Ñ Ð·Ð½Ð°Ñ†Ð¸ Ñе указва чрез „[[:ИМЕ:]]“, а не „[:ИМЕ:]“"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "незавършена екранираща поÑледователноÑÑ‚ чрез „\\“"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "неправилно Ñъдържание в „\\{\\}“"
+
+#~ msgid "regular expression too big"
+#~ msgstr "прекалено голÑм регулÑрен израз"
+
+#~ msgid "unbalanced ("
+#~ msgstr "„(“ без еш"
+
+#~ msgid "no syntax specified"
+#~ msgstr "не е зададен ÑинтакÑиÑ"
+
+#~ msgid "unbalanced )"
+#~ msgstr "„)“ без еш"
-#, fuzzy
#~ msgid "%s subprocess failed"
-#~ msgstr "%s: неуÑпешно позициониране (seek) във файл"
+#~ msgstr "дъщерниÑÑ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“ завърши неуÑпешно"
#~ msgid "regular empty file"
-#~ msgstr "обикновениÑÑ‚ празен файл"
+#~ msgstr "празен, обикновен файл"
#~ msgid "regular file"
-#~ msgstr "обикновениÑÑ‚ файл"
+#~ msgstr "обикновен файл"
#~ msgid "directory"
-#~ msgstr "каталогът"
+#~ msgstr "директориÑ"
+
+#~ msgid "symbolic link"
+#~ msgstr "Ñимволна връзка"
+
+#~ msgid "message queue"
+#~ msgstr "опашка за ÑъобщениÑ"
+
+#~ msgid "semaphore"
+#~ msgstr "Ñемафор"
+
+#~ msgid "shared memory object"
+#~ msgstr "Ñподелен обект в паметта"
+
+#~ msgid "typed memory object"
+#~ msgstr "типов обект в паметта"
#~ msgid "block special file"
-#~ msgstr "ÑпециалниÑÑ‚ блоков файл"
+#~ msgstr "блоков Ñпециален файл"
#~ msgid "character special file"
-#~ msgstr "ÑпециалниÑÑ‚ Ñимволен файл"
+#~ msgstr "знаков Ñпециален Ñайт"
+
+#~ msgid "contiguous data"
+#~ msgstr "поÑледователни данни"
#~ msgid "fifo"
-#~ msgstr "именуваниÑÑ‚ канал"
+#~ msgstr "програмен канал"
-#~ msgid "symbolic link"
-#~ msgstr "Ñимволната връзка"
+#~ msgid "door"
+#~ msgstr "порта"
-#~ msgid "socket"
-#~ msgstr "гнездото"
+#~ msgid "multiplexed block special file"
+#~ msgstr "мултиплекÑиран блоков Ñпециален файл"
-#~ msgid "message queue"
-#~ msgstr "опашката ÑÑŠÑ ÑъобщениÑ"
+#~ msgid "multiplexed character special file"
+#~ msgstr "мултиплекÑиран знаков Ñпециален файл"
-#~ msgid "semaphore"
-#~ msgstr "Ñемафорът"
+#~ msgid "multiplexed file"
+#~ msgstr "мултиплекÑиран файл"
-#~ msgid "shared memory object"
-#~ msgstr "ÑподелениÑÑ‚ обект в паметта"
+#~ msgid "named file"
+#~ msgstr "именован файл"
-#~ msgid "typed memory object"
-#~ msgstr "типизираниÑÑ‚ обект в паметта"
+#~ msgid "network special file"
+#~ msgstr "мрежов Ñпециален файл"
+
+#~ msgid "migrated file with data"
+#~ msgstr "мигриран файл Ñ Ð´Ð°Ð½Ð½Ð¸"
+
+#~ msgid "migrated file without data"
+#~ msgstr "мигриран файл без данни"
+
+#~ msgid "port"
+#~ msgstr "порт"
+
+#~ msgid "socket"
+#~ msgstr "гнездо"
+
+#~ msgid "whiteout"
+#~ msgstr "припокриващо изтриване"
#~ msgid "weird file"
-#~ msgstr "ÑтранниÑÑ‚ файл"
+#~ msgstr "Ñтранен файл"
#~ msgid "Address family for hostname not supported"
-#~ msgstr "Този тип адреÑи не Ñе поддържа за името на хоÑта"
+#~ msgstr "Този вид адреÑи за името на хоÑта не Ñе поддържат"
#~ msgid "Temporary failure in name resolution"
-#~ msgstr "Временен проблем при намиране IP-адреÑа на хоÑÑ‚"
+#~ msgstr "Временен проблем при намиране на IP-адреÑа на хоÑÑ‚"
#~ msgid "Bad value for ai_flags"
-#~ msgstr "Ðеправил на ÑтойноÑÑ‚ за ai_flags"
+#~ msgstr "Ðеправилна ÑтойноÑÑ‚ за „ai_flags“"
#~ msgid "Non-recoverable failure in name resolution"
-#~ msgstr "Окончателен неуÑпех при намиране IP-адреÑа на хоÑÑ‚"
+#~ msgstr "Окончателен неуÑпех при намиране на IP-адреÑа на хоÑÑ‚"
#~ msgid "ai_family not supported"
-#~ msgstr "не Ñе поддържа поÑочването на тип адреÑи (ai_family)"
+#~ msgstr "поÑочването на вид адреÑи („ai_family“) не Ñе поддържа"
#~ msgid "Memory allocation failure"
#~ msgstr "ÐеуÑпешно заделÑне на памет"
@@ -354,13 +476,16 @@ msgstr "паметта е изчерпана"
#~ msgid "Servname not supported for ai_socktype"
#~ msgstr ""
-#~ "Името на уÑлугата не Ñе поддържа за използваното тип гнездо (ai_socktype)"
+#~ "Името на уÑлугата не Ñе поддържа за Ð¸Ð·Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸Ð´ гнездо („ai_socktype“)"
#~ msgid "ai_socktype not supported"
-#~ msgstr "не Ñе поддържа поÑочването на тип гнездо (ai_socktype)"
+#~ msgstr "поÑочването на вид гнездо („ai_socktype“) не Ñе поддържа"
#~ msgid "System error"
-#~ msgstr "грешка в ÑиÑтемата"
+#~ msgstr "СиÑтемна грешка"
+
+#~ msgid "Argument buffer too small"
+#~ msgstr "Буферът за аргументите е твърде малък"
#~ msgid "Processing request in progress"
#~ msgstr "ЗаÑвката е в Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð° изпълнение"
@@ -381,77 +506,230 @@ msgstr "паметта е изчерпана"
#~ msgstr "Ðеправилно кодиран низ на аргумент"
#~ msgid "Unknown error"
-#~ msgstr "Ðепозната грешка"
+#~ msgstr "ÐеизвеÑтна грешка"
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: опциÑта \"--%s\" не допуÑка аргумент\n"
+#~ msgid "invalid source_version argument to compile_java_class"
+#~ msgstr ""
+#~ "неправилен аргумент „source_version“ за верÑиÑта на кода към командата "
+#~ "„compile_java_class“"
+
+#~ msgid "invalid target_version argument to compile_java_class"
+#~ msgstr ""
+#~ "неправилен аргумент „target_version“ за верÑиÑта на целта към командата "
+#~ "„compile_java_class“"
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: непозната Ð¾Ð¿Ñ†Ð¸Ñ \"--%s\"\n"
+#~ msgid "failed to create \"%s\""
+#~ msgstr "„%s“ не може да Ñе Ñъздаде"
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: неправилна Ð¾Ð¿Ñ†Ð¸Ñ -- %c\n"
+#~ msgid "error while writing \"%s\" file"
+#~ msgstr "грешка при запиÑа на „%s“"
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: опциÑта \"-W %s\" е двуÑмиÑлена\n"
+#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
+#~ msgstr ""
+#~ "ЛипÑва компилатор за Java, инÑталирайте „gcj“ или задайте такъв Ñ "
+#~ "променливата „JAVAC“"
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: опциÑта \"-W %s\" не допуÑка аргумент\n"
+#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
+#~ msgstr ""
+#~ "ЛипÑва виртуална машина за Java, инÑталирайте „gcj“ или задайте такава Ñ "
+#~ "променливата „JAVA“"
-#~ msgid "block size"
-#~ msgstr "блоковиÑÑ‚ размер"
+#~ msgid "%s subprocess I/O error"
+#~ msgstr "%s: вх./изх. грешка в дъщерен процеÑ"
-#~ msgid "%s exists but is not a directory"
-#~ msgstr "%s ÑъщеÑтвува, но не е каталог"
+#~ msgid "cannot stat %s"
+#~ msgstr "не може да Ñе получи Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑÑŠÑ â€žstat“ за „%s“"
-#~ msgid "cannot change owner and/or group of %s"
-#~ msgstr "не може да Ñе Ñмени ÑобÑтвеника и/или групата на %s"
+#~ msgid "cannot change permissions of %s"
+#~ msgstr "правата за доÑтъп до „%s“ не може да Ñе ÑменÑÑ‚"
#~ msgid "cannot create directory %s"
-#~ msgstr "не може да Ñе Ñъздаде каталог %s"
+#~ msgstr "директориÑта „%s“ не може да Ñе Ñъздаде"
-#~ msgid "cannot chdir to directory %s"
-#~ msgstr "не може да Ñе влезе в каталога %s"
+#~ msgid "Failed to open /dev/zero for read"
+#~ msgstr "„/dev/zero“ не може да Ñе отвори за запиÑ"
-#~ msgid "cannot change permissions of %s"
-#~ msgstr "не може да Ñе ÑменÑÑ‚ правата за доÑтъп до %s"
+#~ msgid "creation of reading thread failed"
+#~ msgstr "неуÑпешно Ñъздаване на четÑща нишка"
-#, fuzzy
-#~ msgid "Failed to open /dev/zero for read"
-#~ msgstr "%s: не може да Ñе отвори в режим за пиÑане"
+#~ msgid "cannot set up nonblocking I/O to %s subprocess"
+#~ msgstr "не може да Ñе зададе вх./изх. без блокиране за подпроцеÑа „%s“"
-#, fuzzy
-#~ msgid "cannot create pipe"
-#~ msgstr "не може да Ñе Ñъздаде връзка %s"
+#~ msgid "communication with %s subprocess failed"
+#~ msgstr "неуÑпешна ÐºÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñ Ñ Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“"
+
+#~ msgid "write to %s subprocess failed"
+#~ msgstr "неуÑпешен Ð·Ð°Ð¿Ð¸Ñ ÐºÑŠÐ¼ Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“"
+
+#~ msgid "read from %s subprocess failed"
+#~ msgstr "неуÑпешно четене от Ð´ÑŠÑ‰ÐµÑ€Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“"
+
+#~ msgid "subprocess %s terminated with exit code %d"
+#~ msgstr "подпроцеÑÑŠÑ‚ „%s“ завърши Ñ ÐºÐ¾Ð´ за ÑÑŠÑтоÑние %d"
+
+#~ msgid "creation of threads failed"
+#~ msgstr "неуÑпешно Ñъздаване н нишки"
+
+#~ msgid "%s subprocess terminated with exit code %d"
+#~ msgstr "подпроцеÑÑŠÑ‚ на „%s“ завърши Ñ ÐºÐ¾Ð´ за ÑÑŠÑтоÑние %d\""
#~ msgid "`"
-#~ msgstr "\""
+#~ msgstr "„"
#~ msgid "'"
-#~ msgstr "\""
+#~ msgstr "“"
-# Клавишът О (латинÑко) генерира "Д" Ñпоред подредбата по БДС
+# RECHECK
#~ msgid "^[yY]"
-#~ msgstr "^[дДoOyY]"
+#~ msgstr "^[yYдДщЩ]"
-# Клавишът K (латинÑко) генерира "Ð" Ñпоред подредбата по БДС
+# RECHECK
#~ msgid "^[nN]"
-#~ msgstr "^[нÐkKnN]"
+#~ msgstr "^[nNнÐÑ…Ð¥]"
+
+#~ msgid "setting permissions for %s"
+#~ msgstr "задаване на права на „%s“"
+
+#~ msgid "Hangup"
+#~ msgstr "ПрекъÑване на връзката"
+
+#~ msgid "Interrupt"
+#~ msgstr "ПрекъÑване"
+
+#~ msgid "Quit"
+#~ msgstr "Спиране"
+
+#~ msgid "Illegal instruction"
+#~ msgstr "Ðеправилна инÑтрукциÑ"
+
+#~ msgid "Trace/breakpoint trap"
+#~ msgstr "ПрекъÑване за траÑиране"
+
+#~ msgid "Aborted"
+#~ msgstr "ПреуÑтановÑване"
+
+#~ msgid "Floating point exception"
+#~ msgstr "Изключение от плаваща запетаÑ"
+
+#~ msgid "Killed"
+#~ msgstr "Убит"
+
+#~ msgid "Bus error"
+#~ msgstr "Грешка в шината"
+
+#~ msgid "Segmentation fault"
+#~ msgstr "Грешка в разделÑнето"
+
+#~ msgid "Broken pipe"
+#~ msgstr "ПрекъÑнат програмен канал"
+
+#~ msgid "Alarm clock"
+#~ msgstr "Ðларма"
+
+#~ msgid "Terminated"
+#~ msgstr "Прекратен"
+
+#~ msgid "Urgent I/O condition"
+#~ msgstr "Спешно вх./изх. ÑÑŠÑтоÑние"
+
+#~ msgid "Stopped (signal)"
+#~ msgstr "СпрÑн (Ñигнал)"
+
+#~ msgid "Stopped"
+#~ msgstr "СпрÑн"
+
+#~ msgid "Continued"
+#~ msgstr "Продължен"
+
+#~ msgid "Child exited"
+#~ msgstr "ПреуÑтановен дъщерен процеÑ"
+
+#~ msgid "Stopped (tty input)"
+#~ msgstr "Спиране (вход от tty)"
+
+#~ msgid "Stopped (tty output)"
+#~ msgstr "Спиране (изход към tty)"
+
+#~ msgid "I/O possible"
+#~ msgstr "Възможен вх./изх."
+
+#~ msgid "CPU time limit exceeded"
+#~ msgstr "Ðадвишаване на процеÑорното време"
+
+#~ msgid "File size limit exceeded"
+#~ msgstr "Ðадвишаване на размера на файл"
+
+#~ msgid "Virtual timer expired"
+#~ msgstr "Изтекъл виртуален таймер"
+
+#~ msgid "Profiling timer expired"
+#~ msgstr "Изтекъл профилиращ таймер"
+
+#~ msgid "Window changed"
+#~ msgstr "Преоразмерен прозорец"
+
+#~ msgid "User defined signal 1"
+#~ msgstr "ПотребителÑки Ñигнал 1"
+
+#~ msgid "User defined signal 2"
+#~ msgstr "ПотребителÑки Ñигнал 2"
+
+#~ msgid "EMT trap"
+#~ msgstr "Емулирана инÑтрукциÑ"
+
+#~ msgid "Bad system call"
+#~ msgstr "Грешно ÑиÑтемно извикване"
+
+#~ msgid "Stack fault"
+#~ msgstr "Грешка в разделÑнето"
+
+#~ msgid "Information request"
+#~ msgstr "ЗаÑвка за информациÑ"
+
+#~ msgid "Power failure"
+#~ msgstr "Проблем в захранването"
+
+#~ msgid "Resource lost"
+#~ msgstr "Загубен реÑурÑ"
+
+#~ msgid "error writing to a closed pipe or socket"
+#~ msgstr "грешка при Ð·Ð°Ð¿Ð¸Ñ Ð²ÑŠÐ² вече затворен програмен канал или гнездо"
+
+#~ msgid "cannot create pipe"
+#~ msgstr "не може да Ñе Ñъздаде програмен канал"
+
+#~ msgid "Real-time signal %d"
+#~ msgstr "Сигнал за реално време %d"
+
+#~ msgid "Unknown signal %d"
+#~ msgstr "Ðепознат Ñигнал %d"
+
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Време за изпълнение [Ñекунди]"
+
+#~ msgid "CPU user"
+#~ msgstr "потребителÑко време"
+
+#~ msgid "CPU system"
+#~ msgstr "ÑиÑтемно време"
+
+#~ msgid "wall clock"
+#~ msgstr "общо време"
#~ msgid "iconv function not usable"
-#~ msgstr "функциÑта iconv не е използваема"
+#~ msgstr "функциÑта „iconv“ е неизползваема"
#~ msgid "iconv function not available"
-#~ msgstr "функциÑта iconv е недоÑтъпна"
+#~ msgstr "функциÑта „iconv“ е недоÑтъпна"
#~ msgid "character out of range"
#~ msgstr "знак извън диапазона"
#~ msgid "cannot convert U+%04X to local character set"
-#~ msgstr "не може да Ñе конвертира U+%04X в локалното кодиране"
+#~ msgstr "„U+%04X“ не може да Ñе конвертира в локалното кодиране"
#~ msgid "cannot convert U+%04X to local character set: %s"
-#~ msgstr "не може да Ñе конвертира U+%04X в локалното кодиране: %s"
+#~ msgstr "„U+%04X“ не може да Ñе конвертира в локалното кодиране: %s"
#~ msgid "invalid user"
#~ msgstr "неÑъщеÑтвуващ потребител"
@@ -459,62 +737,71 @@ msgstr "паметта е изчерпана"
#~ msgid "invalid group"
#~ msgstr "неÑъщеÑтвуваща група"
-#~ msgid "cannot get the login group of a numeric UID"
-#~ msgstr "не може да Ñе получи входÑщата група по потребителÑки номер"
+#~ msgid "invalid spec"
+#~ msgstr "неправилна ÑпецификациÑ"
+
+#~ msgid "unable to display error message"
+#~ msgstr "Ñъобщението за грешка не може да Ñе изведе"
+
+#~ msgid "Packaged by %s (%s)\n"
+#~ msgstr "Пакетирано от %s (%s)\n"
+
+#~ msgid "Packaged by %s\n"
+#~ msgstr "Пакетирано от %s\n"
#~ msgid "(C)"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "This is free software. You may redistribute copies of it under the terms "
-#~ "of\n"
-#~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Това е Ñвободен Ñофтуер. Можете да разпроÑтранÑвате негови ÐºÐ¾Ð¿Ð¸Ñ "
-#~ "ÑъглаÑно\n"
-#~ "уÑловиÑта на ОÑновната общодоÑтъпна Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Ð½Ð° ГÐУ\n"
-#~ " <http://www.gnu.org/licenses/gpl.html>.\n"
-#~ "Ðе Ñе дават ÐИКÐКВИ ГÐРÐÐЦИИ до Ñтепента, позволÑвана от закона.\n"
+#~ "Лиценз — Общ публичен лиценз на GNU (GNU GPL), както е публикуван от "
+#~ "ФондациÑта\n"
+#~ "за Ñвободен Ñофтуер — верÑÐ¸Ñ 3 на лиценза или (по ваше решение) по-къÑна "
+#~ "верÑиÑ.\n"
+#~ "<%s>\n"
+#~ "Тази програма е Ñвободен Ñофтуер. Можете да Ñ Ñ€Ð°Ð·Ð¿Ñ€Ð¾ÑтранÑвате и/или "
+#~ "променÑте.\n"
+#~ "Ð¢Ñ Ñе разпроÑтранÑва БЕЗ ÐИКÐКВИ ГÐРÐÐЦИИ доколкото е позволено от "
+#~ "закона.\n"
#~ msgid "Written by %s.\n"
-#~ msgstr "ÐапиÑан от %s.\n"
+#~ msgstr "Създадено от %s.\n"
#~ msgid "Written by %s and %s.\n"
-#~ msgstr "ÐапиÑан от %s и %s.\n"
+#~ msgstr "Създадено от %s и %s.\n"
#~ msgid "Written by %s, %s, and %s.\n"
-#~ msgstr "ÐапиÑан от %s, %s и %s.\n"
+#~ msgstr "Създадено от %s, %s и %s.\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s\n"
+#~ "Създадено от %s, %s, %s\n"
#~ "и %s.\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s и %s.\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s, %s и %s.\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s, %s, %s и %s.\n"
#~ msgid ""
@@ -522,7 +809,7 @@ msgstr "паметта е изчерпана"
#~ "%s, %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s, %s, %s, %s\n"
#~ "и %s.\n"
@@ -531,7 +818,7 @@ msgstr "паметта е изчерпана"
#~ "%s, %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s и %s.\n"
@@ -540,15 +827,73 @@ msgstr "паметта е изчерпана"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, and others.\n"
#~ msgstr ""
-#~ "ÐапиÑан от %s, %s, %s,\n"
+#~ "Създадено от %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
-#~ "%s, %s и други.\n"
+#~ "%s, %s и др.\n"
+
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr ""
+#~ "Докладвайте грешки в програмата на адреÑ: %s\n"
+#~ "Докладвайте грешки в превода на адреÑ: <dict@ludost.net>\n"
+
+#~ msgid "Report %s bugs to: %s\n"
+#~ msgstr "Докладвайте грешки в „%s“ на адреÑ: %s\n"
+
+#~ msgid "%s home page: <%s>\n"
+#~ msgstr "Уеб Ñтраница на „%s“: <%s>\n"
+
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Обща помощ за програмите на GNU: <%s>\n"
+
+#~ msgid "_open_osfhandle failed"
+#~ msgstr "неуÑпешно изпълнение на „_open_osfhandle“"
+
+#~ msgid "cannot restore fd %d: dup2 failed"
+#~ msgstr ""
+#~ "файловиÑÑ‚ деÑкриптор %d не може да Ñе възÑтанови: неуÑпешно изпълнение на "
+#~ "функциÑта „dup2“"
+
+#~ msgid "%s subprocess"
+#~ msgstr "дъщерен Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“"
+
+#~ msgid "%s subprocess got fatal signal %d"
+#~ msgstr "дъщерниÑÑ‚ Ð¿Ñ€Ð¾Ñ†ÐµÑ â€ž%s“ получи фатален Ñигнал %d"
+
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "неуÑпешно задаване на вид на файла като текÑтов/двоичен"
+
+#~ msgid "stdin"
+#~ msgstr "Ñтандартен вход"
+
+#~ msgid "stdout"
+#~ msgstr "Ñтандартен изход"
+
+#~ msgid "stderr"
+#~ msgstr "Ñтандартна грешка"
+
+#~ msgid "unknown stream"
+#~ msgstr "непознат поток"
+
+#~ msgid "failed to reopen %s with mode %s"
+#~ msgstr "файлът „%s“ не може да Ñе отвори наново Ñ Ñ€ÐµÐ¶Ð¸Ð¼ „%s“"
#~ msgid "string comparison failed"
-#~ msgstr "Ñравнението на низове не уÑпÑ"
+#~ msgstr "неуÑпешно Ñравнение на низове"
#~ msgid "Set LC_ALL='C' to work around the problem."
-#~ msgstr "Използвайте LC_ALL='C', за да заобиколите този проблем."
+#~ msgstr "Използвайте „LC_ALL='C'“, за да заобиколите този проблем."
#~ msgid "The strings compared were %s and %s."
#~ msgstr "СравнÑваните низове бÑха %s и %s."
+
+#~ msgid "cannot perform formatted output"
+#~ msgstr "невъзможно форматиране на изхода"
+
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "неправилен аргумент „%3$s“ за опциÑта „%1$s%2$s“"
+
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "неправилен ÑÑƒÑ„Ð¸ÐºÑ Ð² аргумента „%3$s“ за опциÑта „%1$s%2$s“"
+
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "прекалено дълъг аргумент „%3$s“ за опциÑта „%1$s%2$s“"
diff --git a/gl/po/ca.po b/gl/po/ca.po
index 476d190b..162dc128 100644
--- a/gl/po/ca.po
+++ b/gl/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mailutils 0.6.90\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2005-05-21 04:10+0200\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -47,29 +47,29 @@ msgstr ""
"Els arguments necessaris o opcionals per a les opcions llargues també són "
"necessaris o opcionals per a qualsevol opció curta corresponent."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Forma d'ús:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ó: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPCIÓ...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Proveu «%s --help» o «%s --usage» per a obtindre més informació.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Informeu dels errors a %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "S'ha produït un error desconegut del sistema"
@@ -252,6 +252,11 @@ msgstr "error en la recerca de l'expressió regular"
msgid "memory exhausted"
msgstr "la memòria s'ha exhaurit"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
# Usa quote() en els 2 args. ivb
#~ msgid "invalid argument %s for %s"
#~ msgstr "l'argument %s no és vàlid per %s"
diff --git a/gl/po/cs.po b/gl/po/cs.po
index 2898c098..2794d88b 100644
--- a/gl/po/cs.po
+++ b/gl/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-12-04 08:50+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -48,29 +48,29 @@ msgstr ""
"Povinné Äi volitelné, argumenty pro dlouhé pÅ™epínaÄe jsou povinné Äi "
"volitelné, i pro případné odpovídající krátké pÅ™epínaÄe."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Použití:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " nebo:"
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [PŘEPÃNAČ…]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Více informací získáte příkazem „%s --help“ nebo „%s --usage“.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Chyby hlaste na %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Neznámá chyba systému"
@@ -237,6 +237,11 @@ msgstr "Žádný předchozí regulární výraz"
msgid "memory exhausted"
msgstr "paměť byla vyÄerpána"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argument %s je pro %s neplatný"
diff --git a/gl/po/da.po b/gl/po/da.po
index fb5bd45e..6bede308 100644
--- a/gl/po/da.po
+++ b/gl/po/da.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 2.0.0.3462.e9796\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-01-20 22:11+0100\n"
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -52,31 +52,31 @@ msgstr ""
"Obligatoriske eller valgfrie argumenter til lange flag er også obligatoriske "
"eller valgfrie for tilsvarende korte flag."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Brug:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " eller: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [FLAG...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Forsøg med '%s --help' eller '%s --usage' for mere information.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"Rapportér fejl til %s.\n"
"Send synspunkter på oversættelsen til <dansk@dansk-gruppen.dk>\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ukendt systemfejl"
@@ -243,6 +243,11 @@ msgstr "Intet foregående regulært udtryk"
msgid "memory exhausted"
msgstr "hukommelsen opbrugt"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "Ugyldigt argument %s til %s"
diff --git a/gl/po/de.gmo b/gl/po/de.gmo
index 35348b90..20e9216d 100644
--- a/gl/po/de.gmo
+++ b/gl/po/de.gmo
Binary files differ
diff --git a/gl/po/de.po b/gl/po/de.po
index 35a2269e..b7ba8c33 100644
--- a/gl/po/de.po
+++ b/gl/po/de.po
@@ -6,7 +6,8 @@
# Michael Schmidt <michael@guug.de>, 1996, 1997, 1998, 1999, 2000.
# Michael Piefel <piefel@informatik.hu-berlin.de>, 2001, 2002, 2003, 2009.
# Kai Wasserbäch <debian@carbon-project.org>, 2009.
-# Arun Persaud <arun@nubati.net>, 2012
+# Arun Persaud <arun@nubati.net>, 2012.
+# Roland Illig <roland.illig@gmx.de>, 2019.
#
# TAB: spell it out („Tabulatoren“). -ke-
# Don't use obscure abbreviations, please. -ke-
@@ -32,11 +33,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU gnulib-3.0.0.6062.a6b16\n"
+"Project-Id-Version: GNU gnulib-4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2012-06-03 12:41-0700\n"
-"Last-Translator: Arun Persaud <arun@nubati.net>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-22 20:00+0200\n"
+"Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -44,6 +45,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.3\n"
#: gl/lib/argp-help.c:158
#, c-format
@@ -58,7 +60,7 @@ msgstr "%.*s: ARGP_HELP_FMT Parameter benötigt einen Wert"
#: gl/lib/argp-help.c:244
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: Unbekannter ARGP_HELP_FMT Parameter"
+msgstr "%.*s: Unbekannter Parameter für ARGP_HELP_FMT"
#: gl/lib/argp-help.c:257
#, c-format
@@ -73,39 +75,39 @@ msgstr ""
"Erforderliche oder optionale Argumente für lange Optionen sind auch für "
"kurze erforderlich bzw. optional."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Aufruf:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
-msgstr " oder: "
+msgstr " oder: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
-msgstr " [OPTIONEN] "
+msgstr " [OPTION…]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "»%s --help« oder »%s --usage« liefert weitere Informationen.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Unbekannter Systemfehler"
#: gl/lib/argp-parse.c:91
msgid "give this help list"
-msgstr "zeigt diese Hilfeliste"
+msgstr "diese Hilfeliste anzeigen"
#: gl/lib/argp-parse.c:92
msgid "give a short usage message"
-msgstr "zeigt eine Kurzfassung des Aufrufs"
+msgstr "eine Kurzfassung des Aufrufs anzeigen"
#: gl/lib/argp-parse.c:93
msgid "NAME"
@@ -113,7 +115,7 @@ msgstr "NAME"
#: gl/lib/argp-parse.c:94
msgid "set the program name"
-msgstr "den Programmnamen setzen"
+msgstr "den Programmnamen festlegen"
#: gl/lib/argp-parse.c:95
msgid "SECS"
@@ -121,15 +123,15 @@ msgstr "SEK"
#: gl/lib/argp-parse.c:96
msgid "hang for SECS seconds (default 3600)"
-msgstr "warte für SEK Sekunden (Standardwert 3600)"
+msgstr "SEK Sekunden warten (Standardwert 3600)"
#: gl/lib/argp-parse.c:154
msgid "print program version"
-msgstr "zeige Programmversion an"
+msgstr "Programmversion anzeigen"
#: gl/lib/argp-parse.c:171
msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(PROGRAMM FEHLER) Keine Version bekannt!?"
+msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?"
#: gl/lib/argp-parse.c:624
#, c-format
@@ -138,32 +140,32 @@ msgstr "%s: zu viele Argumente\n"
#: gl/lib/argp-parse.c:770
msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(PROGRAMM FEHLER) Option hätte erkannt werden müssen!?"
+msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+msgstr "%s: Option »%s%s« ist mehrdeutig\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: Option »%s« ist mehrdeutig; Möglichkeiten:"
+msgstr "%s: Option »%s%s« ist mehrdeutig; Möglichkeiten:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: unbekannte Option »%c%s«\n"
+msgstr "%s: unbekannte Option »%s%s«\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: Option »%c%s« erlaubt kein Argument\n"
+msgstr "%s: Option »%s%s« erlaubt kein Argument\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: Option »--%s« erfordert ein Argument\n"
+msgstr "%s: Option »%s%s« erfordert ein Argument\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -178,7 +180,7 @@ msgstr "%s: Option erfordert ein Argument -- »%c«\n"
#: gl/lib/openat-die.c:38
#, c-format
msgid "unable to record current working directory"
-msgstr "aktuelles Arbeitsverzeichnisses kann nicht aufgezeichnet werden"
+msgstr "aktuelles Arbeitsverzeichnis konnte nicht bestimmt werden"
#: gl/lib/openat-die.c:57
#, c-format
@@ -196,36 +198,35 @@ msgstr "Keine Ãœbereinstimmung"
#: gl/lib/regcomp.c:141
msgid "Invalid regular expression"
-msgstr "ungültiger regulärer Ausdruck"
+msgstr "Ungültiger regulärer Ausdruck"
#: gl/lib/regcomp.c:144
msgid "Invalid collation character"
-msgstr "Ungültige Zeichenklasse"
+msgstr "Ungültiges Sortierungszeichen"
#: gl/lib/regcomp.c:147
msgid "Invalid character class name"
-msgstr "Ungültiger Zeichenklassenname"
+msgstr "Ungültiger Name für Zeichenklasse"
#: gl/lib/regcomp.c:150
msgid "Trailing backslash"
-msgstr "abschließender Backslash"
+msgstr "Unerwarteter Backslash am Ende"
#: gl/lib/regcomp.c:153
msgid "Invalid back reference"
msgstr "Ungültige Rückreferenz"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Keine Übereinstimmung für [ oder [^"
+msgstr "Gegenstück zu [, [^, [:, [. oder [= fehlt"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr "Keine Übereinstimmung für ( oder \\("
+msgstr "Gegenstück zu ( oder \\( fehlt"
#: gl/lib/regcomp.c:162
msgid "Unmatched \\{"
-msgstr "Keine Übereinstimmung für \\{"
+msgstr "Gegenstück zu \\{ fehlt"
#: gl/lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
@@ -237,11 +238,11 @@ msgstr "Ungültiges Bereichsende"
#: gl/lib/regcomp.c:171
msgid "Memory exhausted"
-msgstr "Speicher ausgeschöpft"
+msgstr "Zu wenig Speicher vorhanden"
#: gl/lib/regcomp.c:174
msgid "Invalid preceding regular expression"
-msgstr "ungültiger vorhergehender regulärer Ausdruck"
+msgstr "Ungültiger vorhergehender regulärer Ausdruck"
#: gl/lib/regcomp.c:177
msgid "Premature end of regular expression"
@@ -253,7 +254,7 @@ msgstr "Der reguläre Ausdruck ist zu groß"
#: gl/lib/regcomp.c:183
msgid "Unmatched ) or \\)"
-msgstr "Keine Übereinstimmung für ) oder \\)"
+msgstr "Gegenstück zu ) oder \\) fehlt"
#: gl/lib/regcomp.c:676
msgid "No previous regular expression"
@@ -261,7 +262,12 @@ msgstr "Kein vorhergehender regulärer Ausdruck"
#: gl/lib/xalloc-die.c:34
msgid "memory exhausted"
-msgstr "Speicher ausgeschöpft"
+msgstr "Zu wenig Speicher vorhanden"
+
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "Standarddateideskriptoren"
#~ msgid "invalid argument %s for %s"
#~ msgstr "ungültiges Argument %s für %s"
@@ -272,8 +278,51 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "Valid arguments are:"
#~ msgstr "Gültige Argumente sind:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: ARGP_HELP_FMT Parameter muss positiv sein"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u freigegeben (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u gecacht (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u gecacht (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u gecacht (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "logarithmisches Anzahlhistogramm\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "logarithmisches Größenhistogramm\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "Dichtehistogramm\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Bitmengen-Statistik:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Aufsummierte Durchläufe = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "Statistikdatei konnte nicht gelesen werden"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "Statistikdatei hat falsche Größe\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "Statistikdatei konnte nicht angelegt werden"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "Statistikdatei konnte nicht zum Schreiben geöffnet werden"
#~ msgid "program error"
#~ msgstr "Programmfehler"
@@ -283,49 +332,82 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
#~ msgstr ""
-#~ "kann kein temporäres Verzeichnis finden, versuchen Sie, $TMPDIR zu setzen"
+#~ "kein temporäres Verzeichnis gefunden, versuchen Sie, $TMPDIR zu setzen"
#~ msgid "cannot create a temporary directory using template \"%s\""
-#~ msgstr "kann temporäres Verzeichnis mit der Schablone „%s“ nicht anlegen"
+#~ msgstr ""
+#~ "temporäres Verzeichnis mit der Schablone »%s« konnte nicht angelegt werden"
#~ msgid "cannot remove temporary file %s"
-#~ msgstr "kann temporäre Datei %s nicht entfernen"
+#~ msgstr "temporäre Datei »%s« konnte nicht entfernt werden"
#~ msgid "cannot remove temporary directory %s"
-#~ msgstr "kann temporäres Verzeichnis %s nicht entfernen"
+#~ msgstr "temporäres Verzeichnis »%s« konnte nicht entfernt werden"
#~ msgid "error closing file"
#~ msgstr "Fehler beim Schließen der Datei"
#~ msgid "write error"
-#~ msgstr "Schreibfehler"
+#~ msgstr "Fehler beim Schreiben der Datei"
#~ msgid "preserving permissions for %s"
-#~ msgstr "erhalte Zugriffsrechte von %s"
+#~ msgstr "Zugriffsberechtigungen von »%s« werden beibehalten"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "Fehler beim Versuch, „%s“ zum Lesen zu öffnen"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "die Datei »%s« konnte nicht zum Lesen geöffnet werden"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "kann Sicherungsdatei „%s“ nicht zum Schreiben öffnen"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "die Sicherungsdatei »%s« konnte nicht zum Schreiben geöffnet werden"
-#~ msgid "error reading \"%s\""
-#~ msgstr "Fehler beim Lesen von „%s“"
+#~ msgid "error reading %s"
+#~ msgstr "Fehler beim Lesen von »%s«"
-#~ msgid "error writing \"%s\""
-#~ msgstr "Fehler beim Schreiben von „%s“"
+#~ msgid "error writing %s"
+#~ msgstr "Fehler beim Schreiben von »%s«"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "Fehler nach dem Lesen von „%s“"
+#~ msgid "error after reading %s"
+#~ msgstr "Fehler nach dem Lesen von »%s«"
#~ msgid "fdopen() failed"
#~ msgstr "Fehler bei fdopen()"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "C#-Compiler nicht gefunden, versuchen Sie, pnet zu installieren"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr ""
+#~ "C#-Compiler nicht gefunden, versuchen Sie, das Paket »mono« zu "
+#~ "installieren"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr ""
+#~ "Virtuelle Maschine für C# nicht gefunden, versuchen Sie, das Paket »mono« "
+#~ "zu installieren"
+
+#~ msgid "unbalanced ["
+#~ msgstr "öffnende eckige Klammer »[« ohne Gegenstück"
+
+#~ msgid "invalid character class"
+#~ msgstr "ungültige Zeichenklasse"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "C#-VM nicht gefunden, versuchen Sie, pnet zu installieren"
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr ""
+#~ "Die Schreibweise für Zeichenklassen ist [[:space:]], nicht [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "unvollendete \\-Escapesequenz"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "Ungültiger Inhalt in \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "der reguläre Ausdruck ist zu groß"
+
+#~ msgid "unbalanced ("
+#~ msgstr "öffnende Klammer »(« ohne Gegenstück"
+
+#~ msgid "no syntax specified"
+#~ msgstr "keine Syntax angegeben"
+
+#~ msgid "unbalanced )"
+#~ msgstr "schließende Klammer »)« ohne Gegenstück"
#~ msgid "%s subprocess failed"
#~ msgstr "%s: Unterprozess fehlgeschlagen"
@@ -339,21 +421,9 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "directory"
#~ msgstr "Verzeichnis"
-#~ msgid "block special file"
-#~ msgstr "blockorientierte Spezialdatei"
-
-#~ msgid "character special file"
-#~ msgstr "zeichenorientierte Spezialdatei"
-
-#~ msgid "fifo"
-#~ msgstr "FIFO"
-
#~ msgid "symbolic link"
#~ msgstr "symbolische Verknüpfung"
-#~ msgid "socket"
-#~ msgstr "Socket"
-
#~ msgid "message queue"
#~ msgstr "Nachrichtenwarteschlange"
@@ -366,6 +436,51 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "typed memory object"
#~ msgstr "Objekt getypten Speichers"
+#~ msgid "block special file"
+#~ msgstr "blockorientierte Spezialdatei"
+
+#~ msgid "character special file"
+#~ msgstr "zeichenorientierte Spezialdatei"
+
+#~ msgid "contiguous data"
+#~ msgstr "zusammenhängende Daten"
+
+#~ msgid "fifo"
+#~ msgstr "FIFO"
+
+#~ msgid "door"
+#~ msgstr "Tür"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "gemultiplexte blockorientierte Spezialdatei"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "gemultiplexte zeichenorientierte Spezialdatei"
+
+#~ msgid "multiplexed file"
+#~ msgstr "gemultiplexte Datei"
+
+#~ msgid "named file"
+#~ msgstr "benannte Datei"
+
+#~ msgid "network special file"
+#~ msgstr "netzwerkbezogene Spezialdatei"
+
+#~ msgid "migrated file with data"
+#~ msgstr "migrierte Datei mit Daten"
+
+#~ msgid "migrated file without data"
+#~ msgstr "migrierte Datei ohne Daten"
+
+#~ msgid "port"
+#~ msgstr "Anschluss"
+
+#~ msgid "socket"
+#~ msgstr "Socket"
+
+#~ msgid "whiteout"
+#~ msgstr "Ãœberblendung"
+
#~ msgid "weird file"
#~ msgstr "merkwürdige Datei"
@@ -426,85 +541,74 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "Unknown error"
#~ msgstr "Unbekannter Fehler"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: Option »--%s« erlaubt kein Argument\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: unbekannte Option »--%s«\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: Option »-W %s« erlaubt kein Argument\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: Option »-W %s« erfordert ein Argument\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
-#~ msgstr "ungültiges Argument source_version für compile_java_class"
+#~ msgstr "ungültiges Argument »source_version« für »compile_java_class«"
#~ msgid "invalid target_version argument to compile_java_class"
-#~ msgstr "ungültiges Argument target_version für compile_java_class"
+#~ msgstr "ungültiges Argument »target_version« für »compile_java_class«"
#~ msgid "failed to create \"%s\""
-#~ msgstr "konnte „%s“ nicht erzeugen"
+#~ msgstr "Datei »%s« konnte nicht erzeugt werden"
#~ msgid "error while writing \"%s\" file"
-#~ msgstr "Fehler beim Schreiben von der Datei „%s“"
+#~ msgstr "Fehler beim Schreiben der Datei »%s«"
#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
#~ msgstr ""
-#~ "Java-Compiler nicht gefunden, versuchen Sie, gcj zu installieren oder "
-#~ "setzen Sie $JAVAC"
+#~ "Java-Compiler nicht gefunden, versuchen Sie, das Paket »gcj« zu "
+#~ "installieren oder setzen Sie $JAVAC"
#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
#~ msgstr ""
-#~ "Java-VM nicht gefunden, versuchen Sie, gij zu installieren oder setzen "
-#~ "Sie $JAVA"
+#~ "Virtuelle Maschine für Java nicht gefunden, versuchen Sie, das Paket "
+#~ "»gij« zu installieren oder setzen Sie $JAVA"
#~ msgid "%s subprocess I/O error"
#~ msgstr "%s-Unterprozess-E/A-Fehler"
+#~ msgid "cannot stat %s"
+#~ msgstr "Dateieigenschaften für »%s« konnten nicht bestimmt werden"
+
#~ msgid "cannot change permissions of %s"
-#~ msgstr "kann Zugriffsrechte von %s nicht ändern"
+#~ msgstr "Zugriffsrechte von »%s« konnten nicht geändert werden"
#~ msgid "cannot create directory %s"
-#~ msgstr "kann Verzeichnis %s nicht anlegen"
+#~ msgstr "Verzeichnis »%s« konnte nicht angelegt werden"
#~ msgid "Failed to open /dev/zero for read"
-#~ msgstr "Konnte /dev/zero nicht zum Lesen öffnen"
+#~ msgstr "Das Gerät »/dev/zero« konnte nicht zum Lesen geöffnet werden"
#~ msgid "creation of reading thread failed"
#~ msgstr "Erstellen des Lese-Threads fehlgeschlagen"
#~ msgid "cannot set up nonblocking I/O to %s subprocess"
#~ msgstr ""
-#~ "Nicht-blockierendes I/O zu Teilprozess %s kann nicht hergestellt werden"
+#~ "Nicht-blockierendes I/O zu Teilprozess »%s« konnte nicht hergestellt "
+#~ "werden"
#~ msgid "communication with %s subprocess failed"
-#~ msgstr "Kommunikation mit Teilprozess %s fehlgeschlagen"
+#~ msgstr "Kommunikation mit Teilprozess »%s« fehlgeschlagen"
#~ msgid "write to %s subprocess failed"
-#~ msgstr "Schreiben zu Teilprozess %s fehlgeschlagen"
+#~ msgstr "Schreiben zu Teilprozess »%s« fehlgeschlagen"
#~ msgid "read from %s subprocess failed"
-#~ msgstr "Lesen von Teilprozess %s fehlgeschlagen"
+#~ msgstr "Lesen von Teilprozess »%s« fehlgeschlagen"
#~ msgid "subprocess %s terminated with exit code %d"
-#~ msgstr "Teilprozess %s beendet mit Exitcode %d"
+#~ msgstr "Teilprozess »%s« beendet mit Code %d"
#~ msgid "creation of threads failed"
#~ msgstr "Erstellen von Threads fehlgeschlagen"
#~ msgid "%s subprocess terminated with exit code %d"
-#~ msgstr "Teilprozess %s beendet mit Exitcode %d"
-
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
+#~ msgstr "Teilprozess »%s« wurde mit Code %d beendet"
#~ msgid "`"
-#~ msgstr "„"
+#~ msgstr "»"
#~ msgid "'"
-#~ msgstr "“"
+#~ msgstr "«"
#~ msgid "^[yY]"
#~ msgstr "^[jJyY]"
@@ -513,10 +617,10 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "^[nN]"
#~ msgid "setting permissions for %s"
-#~ msgstr "setze Zugriffsrechte von %s"
+#~ msgstr "Zugriffsberechtigungen von »%s« werden festgelegt"
#~ msgid "Hangup"
-#~ msgstr "Aufgehängt"
+#~ msgstr "Aufhängen"
#~ msgid "Interrupt"
#~ msgstr "Unterbrechung"
@@ -525,7 +629,7 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Beendet"
#~ msgid "Illegal instruction"
-#~ msgstr "Ungültige Anweisung"
+#~ msgstr "Ungültiger Maschinenbefehl"
#~ msgid "Trace/breakpoint trap"
#~ msgstr "Trace-/Breakpoint-Falle"
@@ -534,7 +638,7 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Abgebrochen"
#~ msgid "Floating point exception"
-#~ msgstr "Fließkomma-Ausnahme"
+#~ msgstr "Gleitkomma-Ausnahme"
#~ msgid "Killed"
#~ msgstr "Getötet"
@@ -543,13 +647,13 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Busfehler"
#~ msgid "Segmentation fault"
-#~ msgstr "Speicheraufteilungsfehler"
+#~ msgstr "Speicherzugriffsfehler"
#~ msgid "Broken pipe"
#~ msgstr "Unterbrochene Weiterleitung"
#~ msgid "Alarm clock"
-#~ msgstr "Alarmuhr"
+#~ msgstr "Wecker"
#~ msgid "Terminated"
#~ msgstr "Terminiert"
@@ -567,7 +671,7 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Fortgesetzt"
#~ msgid "Child exited"
-#~ msgstr "Kind verlassen"
+#~ msgstr "Kindprozess beendet"
#~ msgid "Stopped (tty input)"
#~ msgstr "Gestoppt (tty-Eingabe)"
@@ -621,7 +725,7 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Fehler beim Schreiben in geschlossene Pipe oder Socket"
#~ msgid "cannot create pipe"
-#~ msgstr "kann Pipe nicht erzeugen"
+#~ msgstr "Pipe konnte nicht erzeugt werden"
#~ msgid "Real-time signal %d"
#~ msgstr "Echtzeitsignal %d"
@@ -629,6 +733,18 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "Unknown signal %d"
#~ msgstr "Unbekanntes Signal %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Ausführungszeiten (in Sekunden)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU Anwendung"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU System"
+
+#~ msgid "wall clock"
+#~ msgstr "Vergangene Zeit"
+
#~ msgid "iconv function not usable"
#~ msgstr "iconv-Funktion nicht benutzbar"
@@ -639,22 +755,25 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Zeichen außerhalb erlaubter Grenzen"
#~ msgid "cannot convert U+%04X to local character set"
-#~ msgstr "kann U+%04X nicht in lokalen Zeichensatz konvertieren"
+#~ msgstr ""
+#~ "das Zeichen U+%04X konnte nicht in lokalen Zeichensatz konvertiert werden"
#~ msgid "cannot convert U+%04X to local character set: %s"
-#~ msgstr "kann U+%04X nicht in lokalen Zeichensatz konvertieren: %s"
+#~ msgstr ""
+#~ "das Zeichen U+%04X konnte nicht in lokalen Zeichensatz konvertiert "
+#~ "werden: %s"
#~ msgid "invalid user"
-#~ msgstr "ungültiger Benutzer"
+#~ msgstr "ungültiger Benutzername"
#~ msgid "invalid group"
-#~ msgstr "ungültige Gruppe"
+#~ msgstr "ungültiger Gruppenname"
#~ msgid "invalid spec"
-#~ msgstr "ungültige Spec"
+#~ msgstr "ungültige Angabe"
#~ msgid "unable to display error message"
-#~ msgstr "kann Fehlermeldung nicht anzeigen"
+#~ msgstr "Fehlermeldung konnte nicht angezeigt werden"
#~ msgid "Packaged by %s (%s)\n"
#~ msgstr "Paket erstellt von %s (%s)\n"
@@ -666,19 +785,13 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "Lizenz GPLv3+: GNU GPL Version 3 oder höher <%s>.\n"
#~ "Dies ist freie Software: Sie können sie ändern und weitergeben.\n"
-#~ "Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt.\n"
-#~ "\n"
+#~ "Es gibt keinerlei Garantien, soweit es das Gesetz erlaubt.\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Geschrieben von %s.\n"
@@ -744,34 +857,28 @@ msgstr "Speicher ausgeschöpft"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s und anderen.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
-#~ "Melden Sie Fehler im Program (auf Englisch, mit LC_ALL=C) an <%s>.\n"
+#~ "Melden Sie Fehler im Programm (auf Englisch) an »%s«.\n"
#~ "Melden Sie Fehler in der Ãœbersetzung an <translation-team-de@lists."
#~ "sourceforge.net>.\n"
#~ msgid "Report %s bugs to: %s\n"
-#~ msgstr "Melden Sie %s-Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n"
+#~ msgstr "Melden Sie %s-Fehler an »%s«\n"
#~ msgid "%s home page: <%s>\n"
-#~ msgstr "%s Homepage: <%s>\n"
+#~ msgstr "%s-Homepage: %s\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Heimatseite von %s: <http://www.gnu.org/software/%s/>.\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Allgemeine Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/"
-#~ "gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Allgemeine Hilfe zur Benutzung von GNU-Software: %s\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle fehlgeschlagen"
#~ msgid "cannot restore fd %d: dup2 failed"
-#~ msgstr "Kann Fd %d nicht wiederherstellen: dup2 fehlgeschlagen"
+#~ msgstr ""
+#~ "Dateideskriptor %d konnte nicht wiederhergestellt werden: dup2 "
+#~ "fehlgeschlagen"
#~ msgid "%s subprocess"
#~ msgstr "%s-Unterprozess"
@@ -779,6 +886,10 @@ msgstr "Speicher ausgeschöpft"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "%s-Unterprozess bekam tödliches Signal %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr ""
+#~ "Dateideskriptor konnte nicht zwischen Text und Binär umgeschaltet werden"
+
#~ msgid "stdin"
#~ msgstr "Standardeingabe (stdin)"
@@ -792,28 +903,49 @@ msgstr "Speicher ausgeschöpft"
#~ msgstr "Unbekannter Datenstrom"
#~ msgid "failed to reopen %s with mode %s"
-#~ msgstr "Erneutes Öffnen von %s mit Mode %s fehlgeschlagen"
+#~ msgstr "Erneutes Öffnen von %s mit Modus %s fehlgeschlagen"
#~ msgid "string comparison failed"
#~ msgstr "Zeichenkettenvergleich fehlgeschlagen"
#~ msgid "Set LC_ALL='C' to work around the problem."
-#~ msgstr "Setzen Sie LC_ALL=C, um das Problem zu umgehen."
+#~ msgstr "Setzen Sie »LC_ALL=C«, um das Problem zu umgehen."
#~ msgid "The strings compared were %s and %s."
-#~ msgstr "Die verglichenen Zeichenketten waren %s und %s."
+#~ msgstr "Die verglichenen Zeichenketten waren »%s« und »%s«."
#~ msgid "cannot perform formatted output"
-#~ msgstr "kann keine formatierte Ausgabe durchführen"
+#~ msgstr "formatierte Ausgabe konnte nicht durchgeführt werden"
+
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "ungültiges %s%s-Argument »%s«"
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "ungültiges %s%s-Argument „%s“"
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "ungültige Endung in %s%s-Argument »%s«"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "ungültiger Suffix in %s%s-Argument „%s“"
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "%s%s-Argument »%s« zu groß"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "%s%s-Argument „%s“ zu groß"
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: ARGP_HELP_FMT Parameter muss positiv sein"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: Option »--%s« erlaubt kein Argument\n"
+
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: unbekannte Option »--%s«\n"
+
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: Option »-W %s« erlaubt kein Argument\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: Option »-W %s« erfordert ein Argument\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "François Pinard"
+
+#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#~ msgstr "Heimatseite von %s: <http://www.gnu.org/software/%s/>.\n"
#~ msgid "%s: illegal option -- %c\n"
#~ msgstr "%s: ungültige Option -- %c\n"
diff --git a/gl/po/el.po b/gl/po/el.po
index 4014416c..b8c7142d 100644
--- a/gl/po/el.po
+++ b/gl/po/el.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2012-03-11 11:25+0100\n"
"Last-Translator: Simos Xenitellis <simos.lists@googlemail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -43,27 +43,27 @@ msgid ""
"optional for any corresponding short options."
msgstr ""
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
#
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [ΕΠΙΛΟΓΗ...]"
#
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Δοκιμάστε `%s --help' για πεÏισσότεÏη βοήθεια.\n"
#
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
@@ -71,7 +71,7 @@ msgstr ""
"ΑναφέÏατε σφάλματα στο <%s>.\n"
#
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Άγνωστο σφάλμα συστήματος"
@@ -268,6 +268,11 @@ msgstr "σφάλμα στην ανεÏÏεση μέσω κανονικής έκÏ
msgid "memory exhausted"
msgstr "η μνήμη εξαντλήθηκε"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#
#~ msgid "invalid argument %s for %s"
#~ msgstr "μη έγκυÏο ÏŒÏισμα %s για %s"
diff --git a/gl/po/eo.gmo b/gl/po/eo.gmo
index 9d9a7e57..d08ffb1d 100644
--- a/gl/po/eo.gmo
+++ b/gl/po/eo.gmo
Binary files differ
diff --git a/gl/po/eo.po b/gl/po/eo.po
index 76c90fe9..876e7f67 100644
--- a/gl/po/eo.po
+++ b/gl/po/eo.po
@@ -1,14 +1,14 @@
-# translation of gnubiff-2.0.2.po to Esperanto
-# Copyright (C) 2013 Free Software Foundation, Inc.
+# translation of gnulib to Esperanto
+# Copyright (C) 2013, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
-# Felipe Castro <fefcas@gmail.com>, 2013.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2013-02-06 15:17-0300\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 18:26-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 1.8.11\n"
#: gl/lib/argp-help.c:158
#, c-format
@@ -45,29 +46,29 @@ msgstr ""
"Devigaj aŭ nedevigaj argumentoj por longaj modifiloj ankaŭ estas devigaj aŭ "
"nedevigaj por iu ajn korespondanta mallonga modifilo."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Uzmaniero:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " aÅ­: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [MODIFILO...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Provu '%s --help' aÅ­ '%s --usage' por pli da informo.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Raportu program-misojn al %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Nekonata sistem-eraro"
@@ -113,29 +114,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(PROGRAM-ERARO) Modifilo devus esti rekonita!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: la modifilo '-W %s' estas plursenca\n"
+msgstr "%s: la modifilo '%s%s' estas plursenca\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: la modifilo '%s' estas plursenca; eblecoj:"
+msgstr "%s: la modifilo '%s%s' estas plursenca; eblecoj:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: nerekonata modifilo '%c%s'\n"
+msgstr "%s: nerekonata modifilo '%s%s'\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n"
+msgstr "%s: la modifilo '%s%s' ne permesas argumenton\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: la modifilo '--%s' postulas argumenton\n"
+msgstr "%s: la modifilo '%s%s' postulas argumenton\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -186,9 +187,8 @@ msgid "Invalid back reference"
msgstr "Malvalida retroreferenco"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Senpara [ aÅ­ [^"
+msgstr "Senpara [, [^, [:, [., aÅ­ [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -234,6 +234,11 @@ msgstr "Neniu antaÅ­a regulesprimo"
msgid "memory exhausted"
msgstr "memoro estas plenigita"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "laŭnormaj dosier-priaĵoj"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "malvalida argumento %s por %s"
@@ -243,8 +248,51 @@ msgstr "memoro estas plenigita"
#~ msgid "Valid arguments are:"
#~ msgstr "Validaj argumentoj estas:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: parametro ARGP_HELP_FMT devas esti pozitiva"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u liberitaj (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u kaÅmem (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u kaÅmem (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u kaÅmem (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histogramo pri nombro-protokolado\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histogramo pri grando-protokolado\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histogramo pri denso\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Bitset statistikoj:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Akumulitaj funkciadoj = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "ne eblas legi dosieron stats"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "malÄusta dosier-grando de stats\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "ne eblas skibi en dosiero stats"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "ne eblas malfermi dosieron stats por skribi"
#~ msgid "program error"
#~ msgstr "programeraro"
@@ -273,29 +321,56 @@ msgstr "memoro estas plenigita"
#~ msgid "preserving permissions for %s"
#~ msgstr "ni tenas la permesojn por %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "eraro dum malfermo de \"%s\" por legi"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "eraro dum malfermo de %s por legi"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "ne eblas malfermi la savdosieron \"%s\" por skribi"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "ne eblas malfermi la savdosieron %s por skribi"
-#~ msgid "error reading \"%s\""
-#~ msgstr "eraro legante \"%s\""
+#~ msgid "error reading %s"
+#~ msgstr "eraro dum lego de %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "eraro skribante \"%s\""
+#~ msgid "error writing %s"
+#~ msgstr "eraro dum skribo de %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "eraro post legi \"%s\""
+#~ msgid "error after reading %s"
+#~ msgstr "eraro post legi %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() fiaskis"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "Kompililo C# ne estis trovata, ni provas instali pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "Kompililo C# ne estis trovata, ni provas instali mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "Virtuala maÅino C# ne estis trovata, ni provas instali mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "nekongruita ["
+
+#~ msgid "invalid character class"
+#~ msgstr "malvalida signa klaso"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "sintakso de signa klaso estas [[:space:]], ne [:space:]"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "Virtuala maÅino C# ne estis trovata, ni provas instali pnet"
+#~ msgid "unfinished \\ escape"
+#~ msgstr "nefinigita eskapo \\"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "malvalida enhavo de \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "regulesprimo tro grandas"
+
+#~ msgid "unbalanced ("
+#~ msgstr "nekongruita ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "neniu sintakso estas indikita"
+
+#~ msgid "unbalanced )"
+#~ msgstr "nekongruita )"
#~ msgid "%s subprocess failed"
#~ msgstr "subprocezo de %s fiaskis"
@@ -309,21 +384,9 @@ msgstr "memoro estas plenigita"
#~ msgid "directory"
#~ msgstr "dosierujo"
-#~ msgid "block special file"
-#~ msgstr "bloka speciala dosiero"
-
-#~ msgid "character special file"
-#~ msgstr "bajta speciala dosiero"
-
-#~ msgid "fifo"
-#~ msgstr "fifo"
-
#~ msgid "symbolic link"
#~ msgstr "simbola ligo"
-#~ msgid "socket"
-#~ msgstr "konektingo"
-
#~ msgid "message queue"
#~ msgstr "mesaÄovico"
@@ -336,6 +399,51 @@ msgstr "memoro estas plenigita"
#~ msgid "typed memory object"
#~ msgstr "tipita memorbjekto"
+#~ msgid "block special file"
+#~ msgstr "bloka speciala dosiero"
+
+#~ msgid "character special file"
+#~ msgstr "bajta speciala dosiero"
+
+#~ msgid "contiguous data"
+#~ msgstr "kontinua datumaro"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "enirejo"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "multplektita bloka speciala dosiero"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "bajta multplektita speciala dosiero"
+
+#~ msgid "multiplexed file"
+#~ msgstr "multplektita dosiero"
+
+#~ msgid "named file"
+#~ msgstr "nomigita dosiero"
+
+#~ msgid "network special file"
+#~ msgstr "reta speciala dosiero"
+
+#~ msgid "migrated file with data"
+#~ msgstr "transmetis dosieron kun datumaro"
+
+#~ msgid "migrated file without data"
+#~ msgstr "transmetis dosieron sen datumaro"
+
+#~ msgid "port"
+#~ msgstr "pordo"
+
+#~ msgid "socket"
+#~ msgstr "konektingo"
+
+#~ msgid "whiteout"
+#~ msgstr "'whiteout'"
+
#~ msgid "weird file"
#~ msgstr "stranga dosiero"
@@ -396,18 +504,6 @@ msgstr "memoro estas plenigita"
#~ msgid "Unknown error"
#~ msgstr "Nekonata eraro"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: nerekonata modifilo '--%s'\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "malvalida argumento source_version por compile_java_class"
@@ -430,6 +526,9 @@ msgstr "memoro estas plenigita"
#~ msgid "%s subprocess I/O error"
#~ msgstr "%s subproceza eraro de en/eligo"
+#~ msgid "cannot stat %s"
+#~ msgstr "ne eblas stat %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "ne eblas ÅanÄi permesojn de %s"
@@ -463,9 +562,6 @@ msgstr "memoro estas plenigita"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "la subproceso %s ĉesis kun elira kodo %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "‘"
@@ -566,7 +662,7 @@ msgstr "memoro estas plenigita"
#~ msgstr "Signalo 2 difinita de uzanto"
#~ msgid "EMT trap"
-#~ msgstr "kaptilo EMT"
+#~ msgstr "EMT-kaptilo"
#~ msgid "Bad system call"
#~ msgstr "MalÄusta sistemvoko"
@@ -595,6 +691,18 @@ msgstr "memoro estas plenigita"
#~ msgid "Unknown signal %d"
#~ msgstr "Nekonata signalo %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Tempo de funkciado (sekundoj)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU uzanto"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU sistemo"
+
+#~ msgid "wall clock"
+#~ msgstr "mur-horloÄo"
+
#~ msgid "iconv function not usable"
#~ msgstr "funkcio iconv ne uzeblas"
@@ -632,20 +740,14 @@ msgstr "memoro estas plenigita"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Permeso GPLv3+: GNU GPL versio 3 aÅ­ posta <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "Permeso GPLv3+: GNU GPL versio 3 aÅ­ posta <%s>.\n"
#~ "Tio ĉi estas libera programaro: vi estas libera por ÅanÄi kaj redisdoni "
#~ "Äin.\n"
#~ "Ekzistas NENIU GARANTIO, laÅ­ plej amplekse permesate de la leÄoj.\n"
-#~ "\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Verkita de %s.\n"
@@ -711,12 +813,8 @@ msgstr "memoro estas plenigita"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, kaj aliaj.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Raportu program-misojn al: %s\n"
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "Raportu program-misojn al: %s\n"
#~ msgid "Report %s bugs to: %s\n"
#~ msgstr "Raportu %s misojn al: %s\n"
@@ -724,12 +822,8 @@ msgstr "memoro estas plenigita"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "%s hejm-paÄo: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "%s hejm-paÄo: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Äœenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Äœenerala helpo por uzi programaron GNU: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle fiaskis"
@@ -743,6 +837,9 @@ msgstr "memoro estas plenigita"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "subprocezo %s ricevis neripareblan signalon %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "ni fiaskis difini la dosieran priaĵon teksta/cifereca reÄimo"
+
#~ msgid "stdin"
#~ msgstr "ĉefenigujo"
@@ -770,11 +867,32 @@ msgstr "memoro estas plenigita"
#~ msgid "cannot perform formatted output"
#~ msgstr "ne eblas efektivigi formatitan eligon"
-#~ msgid "invalid %s%s argument `%s'"
+#~ msgid "invalid %s%s argument '%s'"
#~ msgstr "malvalida %s%s-argumento '%s'"
-#~ msgid "invalid suffix in %s%s argument `%s'"
+#~ msgid "invalid suffix in %s%s argument '%s'"
#~ msgstr "malvalida sufikso en %s%s-argumento '%s'"
-#~ msgid "%s%s argument `%s' too large"
+#~ msgid "%s%s argument '%s' too large"
#~ msgstr "%s%s-argumento '%s' tro larÄas"
+
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "%s hejm-paÄo: <https://www.gnu.org/software/%s/>\n"
+
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: parametro ARGP_HELP_FMT devas esti pozitiva"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
+
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: nerekonata modifilo '--%s'\n"
+
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "François Pinard"
diff --git a/gl/po/es.po b/gl/po/es.po
index 708e9a33..107103cb 100644
--- a/gl/po/es.po
+++ b/gl/po/es.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-08-24 11:23-0500\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -52,29 +52,29 @@ msgstr ""
"Los argumentos obligatorios u opcionales para las opciones largas también "
"son obligatorios u opcionales para cualquier opción corta correspondiente."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Modo de empleo:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " o:"
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPCIÓN...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Pruebe `%s --help' ó `%s --usage' para más información.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Reporte bichos a %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Error desconocido de sistema"
@@ -241,6 +241,11 @@ msgstr "No hay una expresión regular previa"
msgid "memory exhausted"
msgstr "memoria agotada"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argumento %s inválido para %s"
diff --git a/gl/po/et.po b/gl/po/et.po
index 69f6c66a..3f2bff8e 100644
--- a/gl/po/et.po
+++ b/gl/po/et.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 2.0.0.3462.e9796\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-05-19 15:10+0300\n"
"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
@@ -45,29 +45,29 @@ msgid ""
msgstr ""
"Kohustuslikud argumendid pikkadele võtmetele on kohustuslikud ka lühikestele."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Kasutamine:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " või: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [VÕTI]..."
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Lisainfo saamiseks proovige `%s --help' või `%s --usage'.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Vigadest teatage palun aadressil %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Tundmatu süsteemne viga"
@@ -233,6 +233,11 @@ msgstr "Eelmist regulaaravaldist pole"
msgid "memory exhausted"
msgstr "mälu on otsas"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "vigane argument %s võtmel `%s'"
diff --git a/gl/po/eu.po b/gl/po/eu.po
index de3c57c9..8b9bd879 100644
--- a/gl/po/eu.po
+++ b/gl/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: coreutils-5.2.1\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2005-01-04 20:27+0100\n"
"Last-Translator: Mikel Olasagasti <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -48,32 +48,32 @@ msgstr ""
"Beharrezkoak diren argumentuak aukera luzeetan, beharrezkoak dira aukera "
"txikietan ere.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Erabilera: %s [AUKERA]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Saiatu `%s --help' erabiltzen informazio gehiagorako.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"Programa-erroreen berri emateko idatzi hona: <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Sistema-errore ezezaguna"
@@ -249,6 +249,11 @@ msgstr "in bilatu"
msgid "memory exhausted"
msgstr "memoria agortuta"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "%s baliogabeko argumentua da %s-(r)entzat"
diff --git a/gl/po/fi.po b/gl/po/fi.po
index 3ce28fb4..3b769230 100644
--- a/gl/po/fi.po
+++ b/gl/po/fi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-12-10 19:05+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -48,29 +48,29 @@ msgstr ""
"Pitkien valitsimien pakolliset tai valinnaiset argumentit ovat pakollisia "
"tai valinnaisia myös lyhyille valitsimille."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Käyttö:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " tai: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [VALITSIN...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Lisätietoja saa komennolla â€%s --help†tai â€%s --usageâ€.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Lähetä raportit ohjelmistovioista (englanniksi) osoitteeseen %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Tuntematon järjestelmävirhe"
@@ -237,6 +237,11 @@ msgstr "Ei edellistä säännöllistä lauseketta"
msgid "memory exhausted"
msgstr "muisti loppui"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "virheellinen argumentti %s kohteelle %s"
diff --git a/gl/po/fr.gmo b/gl/po/fr.gmo
index 67246f3c..b51d6ae1 100644
--- a/gl/po/fr.gmo
+++ b/gl/po/fr.gmo
Binary files differ
diff --git a/gl/po/fr.po b/gl/po/fr.po
index b8895b83..41554b85 100644
--- a/gl/po/fr.po
+++ b/gl/po/fr.po
@@ -5,13 +5,15 @@
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-.
# Nicolas Provost <nprovost@quadriv.com>, 2008.
# David Prévot <david@tilapin.org>, 2011.
+# Stéphane Aulery <lkppo@free.fr>, 2019.
+#
msgid ""
msgstr ""
-"Project-Id-Version: gnulib-3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib-4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-12-07 20:41-0400\n"
-"Last-Translator: David Prévot <david@tilapin.org>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-21 20:15+0200\n"
+"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@@ -49,31 +51,31 @@ msgstr ""
"Les arguments obligatoires pour la forme longue des options le sont aussi "
"pour les formes courtes associées."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Utilisation :"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ou : "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPTION...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
"Essayez « %s --help » ou « %s --usage » pour obtenir plus de "
"renseignements.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Signalez toute anomalie à %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Erreur système inconnue"
@@ -119,29 +121,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(Erreur du programme) l'option aurait dû être reconnue !"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s : l'option « -W %s » est ambiguë\n"
+msgstr "%s : l'option « %s%s » est ambiguë\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s : l'option « %s » est ambiguë, possibilités :"
+msgstr "%s : l'option « %s%s » est ambiguë, possibilités :"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s : option « %c%s » non reconnue\n"
+msgstr "%s : option « %s%s » non reconnue\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s : l'option « %c%s » ne prend pas d'argument\n"
+msgstr "%s : l'option « %s%s » ne prend pas d'argument\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s : l'option « --%s » nécessite un argument\n"
+msgstr "%s : l'option « %s%s » nécessite un argument\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -192,9 +194,8 @@ msgid "Invalid back reference"
msgstr "Référence antérieure non valable"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ ou [^ non appairé"
+msgstr "[, [^, [:, [. ou [= non appairé"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -240,6 +241,11 @@ msgstr "Pas d'expression rationnelle précédente"
msgid "memory exhausted"
msgstr "mémoire épuisée"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "descripteurs de fichier standards"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argument %s non valable pour %s"
@@ -249,8 +255,51 @@ msgstr "mémoire épuisée"
#~ msgid "Valid arguments are:"
#~ msgstr "Les arguments valables sont :"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s : le paramètre ARGP_HELP_FMT doit être positif"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u libérés (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u cachés (%.2f%%).\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u cachés (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u cachés (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histogramme par comptage\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histogramme par taille\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histogramme par densité\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Statistiques de bitset :\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Lancement cumulés = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "impossible de lire les permissions du fichier"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "taille du fichier de permission erroné\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "impossible d'écrire les permissions du fichier"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "impossible d'ouvrir les permissions du fichier en écriture"
#~ msgid "program error"
#~ msgstr "erreur du programme"
@@ -282,29 +331,57 @@ msgstr "mémoire épuisée"
#~ msgid "preserving permissions for %s"
#~ msgstr "conservation des permissions de %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "erreur à l'ouverture de « %s » en lecture"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "erreur à l'ouverture de %s en lecture"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "impossible d'ouvrir le fichier de sauvegarde « %s » en écriture"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "impossible d'ouvrir le fichier de sauvegarde %s en écriture"
-#~ msgid "error reading \"%s\""
-#~ msgstr "erreur de lecture de « %s »"
+#~ msgid "error reading %s"
+#~ msgstr "erreur de lecture de %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "erreur d'écriture de « %s »"
+#~ msgid "error writing %s"
+#~ msgstr "erreur d'écriture de %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "erreur après la lecture de « %s »"
+#~ msgid "error after reading %s"
+#~ msgstr "erreur après la lecture de %s"
#~ msgid "fdopen() failed"
#~ msgstr "échec de fdopen()"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "compilateur C# non trouvé, essayez d'installer pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "compilateur C# non trouvé, essayez d'installer mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "machine virtuelle C# non trouvée, essayez d'installer mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "[ non appairée"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "machine virtuelle C# non trouvée, essayez d'installer pnet"
+#~ msgid "invalid character class"
+#~ msgstr "nom de classe de caractères non valable"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr ""
+#~ "la syntaxe de la classe de caractères est [[:space:]], et non [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "espace \\ non terminé"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "le contenu de \\{\\} n'est pas valable"
+
+#~ msgid "regular expression too big"
+#~ msgstr "expression rationnelle trop grande"
+
+#~ msgid "unbalanced ("
+#~ msgstr "( non appairée"
+
+#~ msgid "no syntax specified"
+#~ msgstr "pas de syntaxe spécifiée"
+
+#~ msgid "unbalanced )"
+#~ msgstr ") non appairée"
#~ msgid "%s subprocess failed"
#~ msgstr "échec de sous-processus %s"
@@ -318,21 +395,9 @@ msgstr "mémoire épuisée"
#~ msgid "directory"
#~ msgstr "répertoire"
-#~ msgid "block special file"
-#~ msgstr "fichier spécial de blocs"
-
-#~ msgid "character special file"
-#~ msgstr "fichier spécial de caractères"
-
-#~ msgid "fifo"
-#~ msgstr "PEPS (FIFO)"
-
#~ msgid "symbolic link"
#~ msgstr "lien symbolique"
-#~ msgid "socket"
-#~ msgstr "socket"
-
#~ msgid "message queue"
#~ msgstr "file de messages"
@@ -345,6 +410,51 @@ msgstr "mémoire épuisée"
#~ msgid "typed memory object"
#~ msgstr "objet mémoire typé"
+#~ msgid "block special file"
+#~ msgstr "fichier spécial de blocs"
+
+#~ msgid "character special file"
+#~ msgstr "fichier spécial de caractères"
+
+#~ msgid "contiguous data"
+#~ msgstr "données contiguës"
+
+#~ msgid "fifo"
+#~ msgstr "PEPS (FIFO)"
+
+#~ msgid "door"
+#~ msgstr "porte"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "fichier spécial de blocs multipléxé"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "fichier spécial de caractères mulipléxé"
+
+#~ msgid "multiplexed file"
+#~ msgstr "fichier multipléxé"
+
+#~ msgid "named file"
+#~ msgstr "fichier nommé"
+
+#~ msgid "network special file"
+#~ msgstr "fichier spécial de réseau"
+
+#~ msgid "migrated file with data"
+#~ msgstr "fichier migré avec ses données"
+
+#~ msgid "migrated file without data"
+#~ msgstr "fichier migré sans ses données"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "socket"
+#~ msgstr "socket"
+
+#~ msgid "whiteout"
+#~ msgstr "sans"
+
#~ msgid "weird file"
#~ msgstr "fichier bizarre"
@@ -405,18 +515,6 @@ msgstr "mémoire épuisée"
#~ msgid "Unknown error"
#~ msgstr "Erreur inconnue"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s : l'option « --%s » ne prend pas d'argument\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s : option « --%s » non reconnue\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s : l'option « -W %s » ne prend pas d'argument\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s : l'option « -W %s » nécessite un argument\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "argument source_version non valable pour compile_java_class"
@@ -441,6 +539,9 @@ msgstr "mémoire épuisée"
#~ msgid "%s subprocess I/O error"
#~ msgstr "erreur d'entrée sortie du sous-processus %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "impossible de lire les permissions de %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "impossible de modifier les permissions de %s"
@@ -476,9 +577,6 @@ msgstr "mémoire épuisée"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "le sous-processus de %s s'est terminé avec le code de retour %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "« "
@@ -608,6 +706,18 @@ msgstr "mémoire épuisée"
#~ msgid "Unknown signal %d"
#~ msgstr "Signal %d inconnu"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Temps d'exécution (s)"
+
+#~ msgid "CPU user"
+#~ msgstr "Temps utilisateur"
+
+#~ msgid "CPU system"
+#~ msgstr "Temps système"
+
+#~ msgid "wall clock"
+#~ msgstr "horloge murale"
+
#~ msgid "iconv function not usable"
#~ msgstr "fonction iconv non utilisable"
@@ -645,19 +755,13 @@ msgstr "mémoire épuisée"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/"
-#~ "gpl.html>\n"
+#~ "Licence GPLv3+ : GNU GPL version 3 ou ultérieure <%s>\n"
#~ "Logiciel libre : vous êtes libre de le modifier ou de le redistribuer.\n"
#~ "Il n'y a AUCUNE GARANTIE, dans les limites permises par la loi.\n"
-#~ "\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Écrit par %s.\n"
@@ -723,12 +827,8 @@ msgstr "mémoire épuisée"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s et d'autres.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Signalez toute anomalie à : %s\n"
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "Signalez toute anomalie à : %s\n"
#~ msgid "Report %s bugs to: %s\n"
#~ msgstr "Signalez les anomalies de %s à : %s\n"
@@ -736,12 +836,8 @@ msgstr "mémoire épuisée"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "page d'accueil de %s : <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "page d'accueil de %s : <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Aide globale sur les logiciels GNU : <http://www.gnu.org/help/gethelp>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Aide globale sur les logiciels GNU : <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "échec de _open_osfhandle"
@@ -756,6 +852,10 @@ msgstr "mémoire épuisée"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "le sous-processus %s a reçu un signal fatal %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr ""
+#~ "impossible de définir le mode texte/binaire du descripteur de fichier"
+
#~ msgid "stdin"
#~ msgstr "entrée standard (stdin)"
@@ -783,53 +883,14 @@ msgstr "mémoire épuisée"
#~ msgid "cannot perform formatted output"
#~ msgstr "impossible mettre en forme la sortie formatée"
-#~ msgid "invalid %s%s argument `%s'"
+#~ msgid "invalid %s%s argument '%s'"
#~ msgstr "argument %s%s non valable « %s »"
-#~ msgid "invalid suffix in %s%s argument `%s'"
+#~ msgid "invalid suffix in %s%s argument '%s'"
#~ msgstr "suffixe non valable dans l'argument %s%s « %s »"
-#~ msgid "%s%s argument `%s' too large"
+#~ msgid "%s%s argument '%s' too large"
#~ msgstr "argument %s%s « %s » trop grand"
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s : option illégale -- %c\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to <%s>.\n"
-#~ msgstr "Rapportez toute anomalie à %s.\n"
-
-#~ msgid "block size"
-#~ msgstr "taille de bloc"
-
-#~ msgid "%s exists but is not a directory"
-#~ msgstr "%s existe mais n'est pas un répertoire"
-
-#~ msgid "cannot change owner and/or group of %s"
-#~ msgstr "ne peut modifier le propriétraire et/ou le groupe de %s"
-
-#~ msgid "cannot chdir to directory %s"
-#~ msgstr "ne peut aller vers le répertoire %s"
-
-#~ msgid "cannot get the login group of a numeric UID"
-#~ msgstr ""
-#~ "ne peut obtenir le groupe d'établissement de session à partir du UID "
-#~ "numérique"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "This is free software. You may redistribute copies of it under the terms "
-#~ "of\n"
-#~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n"
-#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Ce programme est un logiciel libre; vous pouvez le redistribuer ou le\n"
-#~ "modifier selon les termes de la License Publique Générale de GNU, "
-#~ "publiée\n"
-#~ "par la Free Software Foundation (soit la version 2 ou soit, à votre\n"
-#~ "discrétion, toute version ultérieure).\n"
-#~ "\n"
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "page d'accueil de %s : <https://www.gnu.org/software/%s/>\n"
diff --git a/gl/po/ga.po b/gl/po/ga.po
index 77acd1ba..541d3903 100644
--- a/gl/po/ga.po
+++ b/gl/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 1.1\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2007-07-20 12:24-0600\n"
"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
@@ -47,30 +47,30 @@ msgstr ""
"Is riachtanach/roghnach le rogha ghearr aon argóint atá riachtanach/roghnach "
"leis an rogha fhada."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Úsáid:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " nó: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [ROGHA...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
"Bain triail as `%s --help' nó `%s --usage' chun tuilleadh eolais a fháil.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Seol tuairiscí fabhtanna chuig %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Earráid chórais anaithnid"
@@ -237,6 +237,11 @@ msgstr "Níl aon slonn ionadaíochta roimhe seo"
msgid "memory exhausted"
msgstr "cuimhne ídithe"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argóint neamhbhailí %s chun %s"
diff --git a/gl/po/gl.po b/gl/po/gl.po
index 3ac68562..295c8198 100644
--- a/gl/po/gl.po
+++ b/gl/po/gl.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2012-11-11 13:26+0200\n"
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
@@ -52,29 +52,29 @@ msgstr ""
"Os argumentos obrigatorios ou opcionais das opcións longas son tamén "
"obrigatorios ou opcionais para calquera opción curta que se corresponda."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Uso:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ou: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPCIÓN...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Execute «%s --help» ou «%s --usage» para obter máis información.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Envíe os informes de fallo a %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Erro do sistema descoñecido"
@@ -241,6 +241,11 @@ msgstr "Non hai ningunha expresión regular anterior"
msgid "memory exhausted"
msgstr "memoria esgotada"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argumento incorrecto %s para %s"
diff --git a/gl/po/hu.po b/gl/po/hu.po
index 9520d030..9d057d1b 100644
--- a/gl/po/hu.po
+++ b/gl/po/hu.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2014-06-25 19:51+0200\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -49,30 +49,30 @@ msgstr ""
"Ha egy hosszú kapcsolóhoz kötelező vagy opcionális argumentumot megadni, "
"akkor ez a megfelelő rövid kapcsolónál is kötelező vagy opcionális."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Használat:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " vagy: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [KAPCSOLÓ…]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
"További információkért lásd a(z) „%s --help†vagy „%s --usage†kimenetét.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "A hibák itt jelenthetők: %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ismeretlen rendszerhiba"
@@ -239,6 +239,11 @@ msgstr "Nincs megelőző szabályos kifejezés"
msgid "memory exhausted"
msgstr "elfogyott a memória"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "a(z) „%s†argumentum érvénytelen a következőhöz: %s"
diff --git a/gl/po/it.gmo b/gl/po/it.gmo
index 04903cb2..7f098688 100644
--- a/gl/po/it.gmo
+++ b/gl/po/it.gmo
Binary files differ
diff --git a/gl/po/it.po b/gl/po/it.po
index 9e7649fe..defc261c 100644
--- a/gl/po/it.po
+++ b/gl/po/it.po
@@ -1,24 +1,25 @@
# Italian translation of gnulib
-# Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010, 2011, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
# Marco d'Itri <md@linux.it>, 1998, 1999.
# Giovanni Bortolozzo <borto@dei.unipd.it>, 1998.
-# Milo Casagrande <milo@casagrande.name>, 2008, 2009, 2010, 2011.
+# Milo Casagrande <milo@milo.name>, 2008, 2009, 2010, 2011, 2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: gnulib-3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib-4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-08-22 21:58+0200\n"
-"Last-Translator: Milo Casagrande <milo@casagrande.name>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-21 14:07+0200\n"
+"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.2.1\n"
#: gl/lib/argp-help.c:158
#, c-format
@@ -48,29 +49,29 @@ msgstr ""
"Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono anche "
"per le corrispondenti opzioni brevi."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Uso:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " o: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPZIONE...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
-msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n"
+msgstr "Provare «%s --help» o «%s --usage» per ulteriori informazioni.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Segnalare i bug a %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Errore di sistema sconosciuto"
@@ -116,29 +117,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta."
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
+msgstr "%s: l'opzione «%s%s» è ambigua\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: l'opzione \"%s\" è ambigua. Possibilità:"
+msgstr "%s: l'opzione «%s%s» è ambigua. Possibilità:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: opzione \"%c%s\" non riconosciuta\n"
+msgstr "%s: opzione «%s%s» non riconosciuta\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n"
+msgstr "%s: l'opzione «%s%s» non accetta un argomento\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: l'opzione \"--%s\" richiede un argomento\n"
+msgstr "%s: l'opzione «%s%s» richiede un argomento\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -190,9 +191,8 @@ msgid "Invalid back reference"
msgstr "Riferimento all'indietro non valido"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ o [^ senza corrispondenza"
+msgstr "[, [^, [:, [. o [= senza corrispondenza"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -238,6 +238,11 @@ msgstr "Nessuna espressione regolare precedente"
msgid "memory exhausted"
msgstr "memoria esaurita"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "descrittori file standard"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "argomento %s non valido per %s"
@@ -247,8 +252,51 @@ msgstr "memoria esaurita"
#~ msgid "Valid arguments are:"
#~ msgstr "Sono argomenti validi:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: il parametro ARGP_HELP_FMT deve essere positivo"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u liberati (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u nella cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u nella cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u nella cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "istogramma registro del conteggio\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "istogramma registro delle dimensioni\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "istogramma densità\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Statistiche bitset:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Esecuzioni accumulate = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "impossibile leggere il file delle statistiche"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "dimensione file delle statistiche errata\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "impossibile scrivere il file delle statistiche"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "impossibile aprire il file delle statistiche in scrittura"
#~ msgid "program error"
#~ msgstr "errore del programma"
@@ -261,8 +309,7 @@ msgstr "memoria esaurita"
#~ "impossibile trovare una directory temporanea, provare a impostare $TMPDIR"
#~ msgid "cannot create a temporary directory using template \"%s\""
-#~ msgstr ""
-#~ "impossibile creare una directory temporanea usando il modello \"%s\""
+#~ msgstr "impossibile creare una directory temporanea usando il modello «%s»"
#~ msgid "cannot remove temporary file %s"
#~ msgstr "impossibile rimuovere il file temporaneo %s"
@@ -279,29 +326,56 @@ msgstr "memoria esaurita"
#~ msgid "preserving permissions for %s"
#~ msgstr "preservazione dei permessi per %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "errore nell'aprire \"%s\" in lettura"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "errore nell'aprire %s in lettura"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "impossibile aprire il file di backup \"%s\" in scrittura"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "impossibile aprire il file di backup %s in scrittura"
-#~ msgid "error reading \"%s\""
-#~ msgstr "errore nel leggere \"%s\""
+#~ msgid "error reading %s"
+#~ msgstr "errore nel leggere %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "errore nello scrivere \"%s\""
+#~ msgid "error writing %s"
+#~ msgstr "errore nello scrivere %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "errore dopo la lettura di \"%s\""
+#~ msgid "error after reading %s"
+#~ msgstr "errore dopo la lettura di %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() non riuscita"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "compilatore C# non trovato, provare a installare pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "compilatore C# non trovato, provare a installare mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "macchina virtuale C# non trovata, provare a installare mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "[ non bilanciata"
+
+#~ msgid "invalid character class"
+#~ msgstr "classe carattere non valida"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "la sintassi per la classe carattere è [[:space:]], non [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "escape \\ incompleto"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "contenuto di \\{\\} non valido"
+
+#~ msgid "regular expression too big"
+#~ msgstr "espressione regolare troppo grande"
+
+#~ msgid "unbalanced ("
+#~ msgstr "( non bilanciata"
+
+#~ msgid "no syntax specified"
+#~ msgstr "nessuna sintassi specificata"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "macchina virtuale C# non trovata, provare a installare pnet"
+#~ msgid "unbalanced )"
+#~ msgstr ") non bilanciata"
#~ msgid "%s subprocess failed"
#~ msgstr "%s: sottoprocesso non riuscito"
@@ -315,21 +389,9 @@ msgstr "memoria esaurita"
#~ msgid "directory"
#~ msgstr "directory"
-#~ msgid "block special file"
-#~ msgstr "file speciale a blocchi"
-
-#~ msgid "character special file"
-#~ msgstr "file speciale a caratteri"
-
-#~ msgid "fifo"
-#~ msgstr "fifo"
-
#~ msgid "symbolic link"
#~ msgstr "collegamento simbolico"
-#~ msgid "socket"
-#~ msgstr "socket"
-
#~ msgid "message queue"
#~ msgstr "coda di messaggi"
@@ -346,6 +408,51 @@ msgstr "memoria esaurita"
#~ msgid "typed memory object"
#~ msgstr "oggetto di memoria con nome"
+#~ msgid "block special file"
+#~ msgstr "file speciale a blocchi"
+
+#~ msgid "character special file"
+#~ msgstr "file speciale a caratteri"
+
+#~ msgid "contiguous data"
+#~ msgstr "dati contigui"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "door"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "file speciale a blocchi multiplex"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "file speciale a caratteri multiplex"
+
+#~ msgid "multiplexed file"
+#~ msgstr "file multiplex"
+
+#~ msgid "named file"
+#~ msgstr "file con nome"
+
+#~ msgid "network special file"
+#~ msgstr "file speciale di rete"
+
+#~ msgid "migrated file with data"
+#~ msgstr "file migrato con dati"
+
+#~ msgid "migrated file without data"
+#~ msgstr "file migrato senza dati"
+
+#~ msgid "port"
+#~ msgstr "porta"
+
+#~ msgid "socket"
+#~ msgstr "socket"
+
+#~ msgid "whiteout"
+#~ msgstr "whiteout"
+
#~ msgid "weird file"
#~ msgstr "file strano"
@@ -409,18 +516,6 @@ msgstr "memoria esaurita"
#~ msgid "Unknown error"
#~ msgstr "Errore sconosciuto"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: opzione \"--%s\" non riconosciuta\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "argomento source_version in compile_java_class non valido"
@@ -445,6 +540,9 @@ msgstr "memoria esaurita"
#~ msgid "%s subprocess I/O error"
#~ msgstr "errore di I/O nel sottoprocesso %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "impossibile eseguire stat di %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "impossibile cambiare i permessi di %s"
@@ -478,14 +576,11 @@ msgstr "memoria esaurita"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "sottoprocesso di %s terminato con codice d'uscita %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "Francois Pinard"
-
#~ msgid "`"
-#~ msgstr "\""
+#~ msgstr "«"
#~ msgid "'"
-#~ msgstr "\""
+#~ msgstr "»"
#~ msgid "^[yY]"
#~ msgstr "^[sSyY]"
@@ -648,6 +743,18 @@ msgstr "memoria esaurita"
#~ msgid "Unknown signal %d"
#~ msgstr "Segnale %d sconosciuto"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Tempi di esecuzione (secondi)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU utente"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU sistema"
+
+#~ msgid "wall clock"
+#~ msgstr "tempo reale"
+
#~ msgid "iconv function not usable"
#~ msgstr "funzione iconv non utilizzabile"
@@ -691,20 +798,14 @@ msgstr "memoria esaurita"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/"
-#~ "gpl.html>.\n"
+#~ "Licenza GPLv3+: GNU GPL versione 3 o successiva <%s>.\n"
#~ "Questo programma è software libero: siete liberi di modificarlo e "
#~ "ridistribuirlo.\n"
#~ "Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n"
-#~ "\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Scritto da %s.\n"
@@ -770,13 +871,10 @@ msgstr "memoria esaurita"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s e altri.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
#~ "Segnalare i bug a: %s\n"
-#~ "Segnalare i bug di traduzione a: <tp@lists.linux.it>\n"
+#~ "\n"
#~ msgid "Report %s bugs to: %s\n"
#~ msgstr "Segnalare i bug di %s a: %s.\n"
@@ -784,12 +882,8 @@ msgstr "memoria esaurita"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "Sito web di %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Sito web di %s: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Aiuto per l'utilizzo di software GNU: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Aiuto per l'utilizzo di software GNU: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle non riuscita"
@@ -803,6 +897,10 @@ msgstr "memoria esaurita"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "il sottoprocesso %s ha ricevuto un segnale %d fatale"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr ""
+#~ "impostazione del descrittore file in modalità testo/binario non riuscita"
+
#~ msgid "stdin"
#~ msgstr "stdin"
@@ -839,11 +937,11 @@ msgstr "memoria esaurita"
# invalid --option argument 'arg'
#
# (altre idee sono benvenute!)
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "l'argomento \"%3$s\" di %1$s%2$s non è valido"
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "l'argomento «%3$s» di %1$s%2$s non è valido"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "il suffisso nell'argomento \"%3$s\" di %1$s%2$s non è valido"
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "il suffisso nell'argomento «%3$s» di %1$s%2$s non è valido"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "l'argomento \"%3$s\" di %1$s%2$s è troppo grande"
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "l'argomento «%3$s» di %1$s%2$s è troppo grande"
diff --git a/gl/po/ja.po b/gl/po/ja.po
index 83a52723..88bba72d 100644
--- a/gl/po/ja.po
+++ b/gl/po/ja.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2011-09-02 18:39+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -50,24 +50,24 @@ msgstr ""
"é•·ã„å½¢å¼ã®ã‚ªãƒ—ションã§å¿…é ˆã¾ãŸã¯ä»»æ„ã®å¼•æ•°ã¯ã€ãã‚Œã«å¯¾å¿œã™ã‚‹çŸ­ã„å½¢å¼ã®ã‚ªãƒ—"
"ションã§ã‚‚åŒæ§˜ã«å¿…é ˆã¾ãŸã¯ä»»æ„ã§ã™ã€‚"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "使用法:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr "ã¾ãŸã¯: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPTION...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "詳細㯠`%s --help' ã¾ãŸã¯ `%s --usage' を実行ã—ã¦ä¸‹ã•ã„。\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
@@ -75,7 +75,7 @@ msgstr ""
"翻訳ã«é–¢ã™ã‚‹ãƒã‚°ã¯<translation-team-ja@lists.sourceforge.net>ã«å ±å‘Šã—ã¦ãã ã•"
"ã„。\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "ä¸æ˜Žãªã‚·ã‚¹ãƒ†ãƒ ã‚¨ãƒ©ãƒ¼"
@@ -242,6 +242,11 @@ msgstr "以å‰ã«æ­£è¦è¡¨ç¾ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "memory exhausted"
msgstr "メモリを使ã„æžœãŸã—ã¾ã—ãŸ"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "%2$s ã«å¯¾ã™ã‚‹å¼•æ•° %1$s ãŒé–“é•ã£ã¦ã„ã¾ã™"
diff --git a/gl/po/ko.po b/gl/po/ko.po
index 7f27bcaf..cd39d953 100644
--- a/gl/po/ko.po
+++ b/gl/po/ko.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU textutils 2.0.22\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2002-07-22 20:02+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <translation-team-ko@lists.sourceforge.net>\n"
@@ -44,32 +44,32 @@ msgid ""
"optional for any corresponding short options."
msgstr "±ä ¿É¼Ç¿¡¼­ ²À ÇÊ¿äÇÑ Àμö´Â ªÀº ¿É¼Ç¿¡µµ ²À ÇÊ¿äÇÕ´Ï´Ù.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "»ç¿ë¹ý: %s [<¿É¼Ç>] [<ÆÄÀÏ>]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "´õ ¸¹Àº Á¤º¸¸¦ º¸·Á¸é `%s --help' ÇϽʽÿÀ.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"<%s>(À¸)·Î ¹ö±×¸¦ ¾Ë·Á ÁֽʽÿÀ.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ¿À·ù"
@@ -245,6 +245,11 @@ msgstr "Á¤±Ô½Ä Ž»ö¿¡ ¿À·ù ¹ß»ý"
msgid "memory exhausted"
msgstr "¸Þ¸ð¸®°¡ ¹Ù´Ú³²"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "%2$s¿¡ ´ëÇØ ºÎÀûÀýÇÑ ÀÎÀÚ %1$s"
diff --git a/gl/po/man-db-gnulib.pot b/gl/po/man-db-gnulib.pot
index d4a0a175..f04eab3c 100644
--- a/gl/po/man-db-gnulib.pot
+++ b/gl/po/man-db-gnulib.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: man-db 2.8.5\n"
+"Project-Id-Version: man-db 2.8.6\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -43,29 +43,29 @@ msgid ""
"optional for any corresponding short options."
msgstr ""
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr ""
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr ""
@@ -230,3 +230,8 @@ msgstr ""
#: gl/lib/xalloc-die.c:34
msgid "memory exhausted"
msgstr ""
+
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
diff --git a/gl/po/ms.po b/gl/po/ms.po
index a432f7d4..6527af88 100644
--- a/gl/po/ms.po
+++ b/gl/po/ms.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: coreutils 5.0.90\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2003-08-10 16:00+0800\n"
"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -45,32 +45,32 @@ msgstr ""
"Hujah mandatori kepada opsyen panjang andalah mandatori bagi opsyen pendek "
"juga.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Pengunaan: %s [OPSYEN]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Cuba `%s --help' untuk maklumat lanjut .\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"Lapor pepijat ke <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ralat sistem yang tidak diketahui"
@@ -246,6 +246,11 @@ msgstr "ralat pada carian ungkapan biasa (regexp)"
msgid "memory exhausted"
msgstr "memori keletihan"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "hujah tidak sah %s bagi %s"
diff --git a/gl/po/nb.po b/gl/po/nb.po
index f59f273a..f81235ff 100644
--- a/gl/po/nb.po
+++ b/gl/po/nb.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU textutils 2.0.20\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2002-01-27 21:35+0100\n"
"Last-Translator: Eivind Tagseth <eivindt@multinet.no>\n"
"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
@@ -44,32 +44,32 @@ msgid ""
msgstr ""
"Obligatoriske argmenter til lange flagg er obligatoriske også for korte.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Bruk: %s [FLAGG] [FIL]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Prøv med «%s --help» for mer informasjon.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"\n"
"Rapportér feil til <bug-textutils@gnu.org>."
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ukjent systemfeil"
@@ -245,6 +245,11 @@ msgstr "feil i søk med regulært uttrykk"
msgid "memory exhausted"
msgstr "virtuelt minne oppbrukt"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "ugyldig argument %s for %s"
diff --git a/gl/po/nl.gmo b/gl/po/nl.gmo
index 45cd10e0..045aeed9 100644
--- a/gl/po/nl.gmo
+++ b/gl/po/nl.gmo
Binary files differ
diff --git a/gl/po/nl.po b/gl/po/nl.po
index 768797a0..4c19d28a 100644
--- a/gl/po/nl.po
+++ b/gl/po/nl.po
@@ -1,26 +1,25 @@
# Dutch translations for gnulib.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
#
# Erick Branderhorst <branderh@debian.org>, 1996.
# Ivo Timmermans <ivo@o2w.nl>, 2000.
# Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2004, 2005.
# Erwin Poeze <erwin.poeze@gmail.com>, 2009, 2010.
-# Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011.
+# Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008, 2010, 2011, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: gnulib-3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib-4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-08-22 20:37+0200\n"
-"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-29 13:31+0200\n"
+"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: gl/lib/argp-help.c:158
@@ -51,31 +50,31 @@ msgstr ""
"Een argument dat verplicht of optioneel is voor een lange optie, is dat\n"
"ook voor de overeenkomstige korte optie."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Gebruik: "
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " of: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPTIE...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"Rapporteer gebreken in het programma aan %s;\n"
"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Onbekende systeemfout"
@@ -121,29 +120,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: optie '-W %s' is niet eenduidig\n"
+msgstr "%s: optie '%s%s' is niet eenduidig\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: optie '%s' is niet eenduidig; mogelijkheden zijn:"
+msgstr "%s: optie '%s%s' is niet eenduidig; mogelijkheden zijn:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: onbekende optie '%c%s'\n"
+msgstr "%s: onbekende optie '%s%s'\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: optie '%c%s' staat geen argument toe\n"
+msgstr "%s: optie '%s%s' staat geen argument toe\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: optie '--%s' vereist een argument\n"
+msgstr "%s: optie '%s%s' vereist een argument\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -194,9 +193,8 @@ msgid "Invalid back reference"
msgstr "Ongeldige terugverwijzing"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Ongepaarde [ of [^"
+msgstr "Ongepaarde [, [^, [:, [., of [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -242,6 +240,11 @@ msgstr "Geen eerdere reguliere expressie"
msgid "memory exhausted"
msgstr "onvoldoende geheugen beschikbaar"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "standaard bestandsdescriptors"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "ongeldig argument %s van %s"
@@ -251,8 +254,51 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "Valid arguments are:"
#~ msgstr "Geldige argumenten zijn:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u vrijgegeven (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u gecached (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u gecached (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u gecached (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histogram van aantal gezette bits\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histogram van bitset-groottes\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histogram van dichtheid aan gezette bits\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Bitset-statistieken:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Aantal uitvoeringen = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "kan statistiekenbestand niet lezen"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "statistiekenbestand heeft een verkeerde grootte\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "kan statistiekenbestand niet schrijven"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "kan statistiekenbestand niet openen voor schrijven"
#~ msgid "program error"
#~ msgstr "programmafout"
@@ -281,29 +327,56 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "preserving permissions for %s"
#~ msgstr "toegangsrechten van '%s' worden behouden"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "fout bij openen van '%s' voor lezen"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "fout bij openen van %s voor lezen"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "kan reservebestand '%s' niet openen voor schrijven"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "kan reservekopiebestand %s niet openen voor schrijven"
-#~ msgid "error reading \"%s\""
-#~ msgstr "fout bij lezen van '%s'"
+#~ msgid "error reading %s"
+#~ msgstr "fout bij lezen van %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "fout bij schrijven van '%s'"
+#~ msgid "error writing %s"
+#~ msgstr "fout bij schrijven van %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "fout na lezen van '%s'"
+#~ msgid "error after reading %s"
+#~ msgstr "fout na lezen van %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() is mislukt"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "C#-compiler is niet gevonden; installeer 'pnet'"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "C#-compiler is niet gevonden; installeer 'mono'"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "virtuele C#-machine is niet gevonden; installeer 'mono'"
+
+#~ msgid "unbalanced ["
+#~ msgstr "ongepaarde ["
+
+#~ msgid "invalid character class"
+#~ msgstr "ongeldige tekenklasse"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "syntax van tekenklasse is [[:space:]], niet [:space:]"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "virtuele C#-machine is niet gevonden; installeer 'pnet'"
+#~ msgid "unfinished \\ escape"
+#~ msgstr "onafgemaakte \\-stuurcode"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "ongeldige inhoud van \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "reguliere expressie is te groot"
+
+#~ msgid "unbalanced ("
+#~ msgstr "ongepaarde ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "geen syntax opgegeven"
+
+#~ msgid "unbalanced )"
+#~ msgstr "ongepaarde )"
#~ msgid "%s subprocess failed"
#~ msgstr "subproces %s is mislukt"
@@ -317,21 +390,9 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "directory"
#~ msgstr "map"
-#~ msgid "block special file"
-#~ msgstr "blok-apparaat"
-
-#~ msgid "character special file"
-#~ msgstr "byte-apparaat"
-
-#~ msgid "fifo"
-#~ msgstr "fifo"
-
#~ msgid "symbolic link"
#~ msgstr "symbolische koppeling"
-#~ msgid "socket"
-#~ msgstr "socket"
-
#~ msgid "message queue"
#~ msgstr "berichtenwachtrij"
@@ -344,6 +405,51 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "typed memory object"
#~ msgstr "zelfstandig geheugenobject"
+#~ msgid "block special file"
+#~ msgstr "blok-apparaat"
+
+#~ msgid "character special file"
+#~ msgstr "byte-apparaat"
+
+#~ msgid "contiguous data"
+#~ msgstr "aaneengesloten gegevens"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "door"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "gemultiplexed blok-apparaat"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "gemultiplexed byte-apparaat"
+
+#~ msgid "multiplexed file"
+#~ msgstr "gemultiplexed bestand"
+
+#~ msgid "named file"
+#~ msgstr "benoemd bestand"
+
+#~ msgid "network special file"
+#~ msgstr "netwerkapparaat"
+
+#~ msgid "migrated file with data"
+#~ msgstr "gemigreerd bestand met gegevens"
+
+#~ msgid "migrated file without data"
+#~ msgstr "gemigreerd bestand zonder gegevens"
+
+#~ msgid "port"
+#~ msgstr "poort"
+
+#~ msgid "socket"
+#~ msgstr "socket"
+
+#~ msgid "whiteout"
+#~ msgstr "whiteout"
+
#~ msgid "weird file"
#~ msgstr "merkwaardig bestand"
@@ -404,18 +510,6 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "Unknown error"
#~ msgstr "Onbekende fout"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie '--%s' staat geen argument toe\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: onbekende optie '--%s'\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: optie '-W %s' staat geen argument toe\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: optie '-W %s' vereist een argument\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "ongeldige waarde voor 'source_version' in compile_java_class()"
@@ -438,6 +532,9 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "%s subprocess I/O error"
#~ msgstr "In-/uitvoerfout in subproces %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "kan status van '%s' niet opvragen"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "kan de toegangsrechten van %s niet veranderen"
@@ -471,9 +568,6 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "subproces %s is geëindigd met afsluitwaarde %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "‘"
@@ -606,6 +700,18 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "Unknown signal %d"
#~ msgstr "Onbekend signaal %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Uitvoeringstijden (in seconden)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU (gebruiker)"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU (systeem)"
+
+#~ msgid "wall clock"
+#~ msgstr "kloktijd"
+
#~ msgid "iconv function not usable"
#~ msgstr "de functie iconv() is onbruikbaar"
@@ -643,19 +749,15 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
#~ "Dit is vrije software: u mag het vrijelijk wijzigen en verder "
#~ "verspreiden.\n"
#~ "De precieze licentie is GPL-3+: GNU General Public License versie 3 of "
#~ "later.\n"
-#~ "Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n"
+#~ "Zie <%s> voor de volledige (Engelse) tekst.\n"
#~ "Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n"
#~ "\n"
@@ -723,11 +825,8 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s en anderen.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
#~ "Rapporteer gebreken in het programma aan <%s>;\n"
#~ "meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
@@ -739,13 +838,8 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "Webpagina van %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/"
-#~ ">\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Algemene hulp bij gebruik van GNU-software: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle() is mislukt"
@@ -759,6 +853,9 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "subproces %s ontving het fatale signaal %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "kan modus van bestandsdescriptor niet instellen op tekst of binair"
+
#~ msgid "stdin"
#~ msgstr "standaardinvoer"
@@ -786,11 +883,32 @@ msgstr "onvoldoende geheugen beschikbaar"
#~ msgid "cannot perform formatted output"
#~ msgstr "kan geen opgemaakte uitvoer aanmaken"
-#~ msgid "invalid %s%s argument `%s'"
+#~ msgid "invalid %s%s argument '%s'"
#~ msgstr "ongeldig argument '%3$s' van %1$s%2$s"
-#~ msgid "invalid suffix in %s%s argument `%s'"
+#~ msgid "invalid suffix in %s%s argument '%s'"
#~ msgstr "ongeldig achtervoegsel in argument '%3$s' van %1$s%2$s"
-#~ msgid "%s%s argument `%s' too large"
+#~ msgid "%s%s argument '%s' too large"
#~ msgstr "argument '%3$s' van %1$s%2$s is te groot"
+
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: optie '--%s' staat geen argument toe\n"
+
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: onbekende optie '--%s'\n"
+
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: optie '-W %s' staat geen argument toe\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: optie '-W %s' vereist een argument\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "François Pinard"
+
+#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+#~ msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n"
diff --git a/gl/po/pl.gmo b/gl/po/pl.gmo
index 849c43c9..e65ecb7c 100644
--- a/gl/po/pl.gmo
+++ b/gl/po/pl.gmo
Binary files differ
diff --git a/gl/po/pl.po b/gl/po/pl.po
index 06420766..f462b422 100644
--- a/gl/po/pl.po
+++ b/gl/po/pl.po
@@ -1,18 +1,18 @@
# Polish messages for gnulib
-# Copyright (C) 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2005, 2007, 2009, 2010, 2011, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
#
-# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2014.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2007-2019.
# based on translation for GNU Mailutils by:
# Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005.
# corrections: Wojciech Polak <polak@gnu.org>, 2003
#
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2014-07-17 18:00+0200\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 20:02+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
@@ -51,30 +51,30 @@ msgstr ""
"Argumenty obowiązkowe lub opcjonalne dla długich opcji są również "
"obowiązkowe lub opcjonalne dla odpowiednich krótkich opcji."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Składnia:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " lub: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPCJA...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
-"Polecenie `%s --help' lub `%s --usage' pozwoli uzyskać więcej informacji.\n"
+"Polecenie '%s --help' lub '%s --usage' pozwoli uzyskać więcej informacji.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Prosimy zgłaszać błędy na adres %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Nieznany błąd systemowy"
@@ -120,29 +120,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(BÅÄ„D PROGRAMU) Opcja powinna zostać rozpoznana!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+msgstr "%s: opcja '%s%s' jest niejednoznaczna\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:"
+msgstr "%s: opcja '%s%s' jest niejednoznaczna; możliwości:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: nieznana opcja '%c%s'\n"
+msgstr "%s: nieznana opcja '%s%s'\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: opcja '%c%s' nie może mieć argumentów\n"
+msgstr "%s: opcja '%s%s' nie może mieć argumentów\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: opcja '--%s' musi mieć argument\n"
+msgstr "%s: opcja '%s%s' musi mieć argument\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -193,9 +193,8 @@ msgid "Invalid back reference"
msgstr "Błędne odniesienie wstecz"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Niesparowane [ lub [^"
+msgstr "Niesparowane [, [^, [:, [. lub [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -241,6 +240,11 @@ msgstr "Brak poprzedniego wyrażenia regularnego"
msgid "memory exhausted"
msgstr "pamięć wyczerpana"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "standardowe deskryptory plików"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "błędny argument %s opcji %s"
@@ -250,8 +254,51 @@ msgstr "pamięć wyczerpana"
#~ msgid "Valid arguments are:"
#~ msgstr "Prawidłowe argumenty to:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: Parametr ARGP_HELP_FMT musi być dodatni"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u zwolniono (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u w pamięci podręcznej (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u w pamięci podręcznej (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u w pamięci podręcznej (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histogram liczników\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histogram rozmiarów\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histogram gęstości\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Statystyki operacji bitset:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Uruchomień łącznie = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "nie można odczytać pliku statystyk"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "błędny rozmiar pliku statystyk\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "nie można zapisać pliku statystyk"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "nie można otworzyć pliku statystyk do zapisu"
#~ msgid "program error"
#~ msgstr "błąd programu"
@@ -281,30 +328,57 @@ msgstr "pamięć wyczerpana"
#~ msgid "preserving permissions for %s"
#~ msgstr "zachowywanie uprawnień do %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "błąd podczas otwierania \"%s\" do odczytu"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "błąd podczas otwierania %s do odczytu"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "nie można otworzyć pliku zapasowego \"%s\" do zapisu"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "nie można otworzyć pliku zapasowego %s do zapisu"
-#~ msgid "error reading \"%s\""
-#~ msgstr "błąd odczytu \"%s\""
+#~ msgid "error reading %s"
+#~ msgstr "błąd odczytu %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "błąd zapisu \"%s\""
+#~ msgid "error writing %s"
+#~ msgstr "błąd zapisu %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "błąd po odczycie \"%s\""
+#~ msgid "error after reading %s"
+#~ msgstr "błąd po odczycie %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() nie powiodło się"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "Nie znaleziono kompilatora C#, proszę spróbować zainstalować pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "Nie znaleziono kompilatora C#, proszę spróbować zainstalować mono"
-#~ msgid "C# virtual machine not found, try installing pnet"
+#~ msgid "C# virtual machine not found, try installing mono"
#~ msgstr ""
-#~ "Nie znaleziono maszyny wirtualnej C#, proszę spróbować zainstalować pnet"
+#~ "Nie znaleziono maszyny wirtualnej C#, proszę spróbować zainstalować mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "niesparowany ["
+
+#~ msgid "invalid character class"
+#~ msgstr "błędna klasa znaków"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "składnia klasy znaków to [[:space:]], nie [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "niedokończona sekwencja \\"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "błędna zawartość \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "wyrażenie regularne zbyt duże"
+
+#~ msgid "unbalanced ("
+#~ msgstr "niesparowany ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "nie określono składni"
+
+#~ msgid "unbalanced )"
+#~ msgstr "niesparowany )"
#~ msgid "%s subprocess failed"
#~ msgstr "podproces %s zawiódł"
@@ -318,21 +392,9 @@ msgstr "pamięć wyczerpana"
#~ msgid "directory"
#~ msgstr "katalog"
-#~ msgid "block special file"
-#~ msgstr "blokowy plik specjalny"
-
-#~ msgid "character special file"
-#~ msgstr "znakowy plik specjalny"
-
-#~ msgid "fifo"
-#~ msgstr "potok"
-
#~ msgid "symbolic link"
#~ msgstr "dowiÄ…zanie symboliczne"
-#~ msgid "socket"
-#~ msgstr "gniazdo"
-
#~ msgid "message queue"
#~ msgstr "kolejka komunikatów"
@@ -345,6 +407,51 @@ msgstr "pamięć wyczerpana"
#~ msgid "typed memory object"
#~ msgstr "obiekt z typem w pamięci"
+#~ msgid "block special file"
+#~ msgstr "blokowy plik specjalny"
+
+#~ msgid "character special file"
+#~ msgstr "znakowy plik specjalny"
+
+#~ msgid "contiguous data"
+#~ msgstr "dane ciągłe"
+
+#~ msgid "fifo"
+#~ msgstr "potok"
+
+#~ msgid "door"
+#~ msgstr "plik door"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "multipleksowany blokowy plik specjalny"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "multipleksowany znakowy plik specjalny"
+
+#~ msgid "multiplexed file"
+#~ msgstr "plik multipleksowany"
+
+#~ msgid "named file"
+#~ msgstr "plik nazwany"
+
+#~ msgid "network special file"
+#~ msgstr "sieciowy plik specjalny"
+
+#~ msgid "migrated file with data"
+#~ msgstr "zmigrowany plik z danymi"
+
+#~ msgid "migrated file without data"
+#~ msgstr "zmigrowany plik bez danych"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "socket"
+#~ msgstr "gniazdo"
+
+#~ msgid "whiteout"
+#~ msgstr "plik whiteout"
+
#~ msgid "weird file"
#~ msgstr "dziwny plik"
@@ -405,18 +512,6 @@ msgstr "pamięć wyczerpana"
#~ msgid "Unknown error"
#~ msgstr "Nieznany błąd"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '--%s' nie może mieć argumentów\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: nieznana opcja '--%s'\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: opcja '-W %s' musi mieć argument\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "błędny argument source_version dla compile_java_class"
@@ -442,6 +537,9 @@ msgstr "pamięć wyczerpana"
#~ msgid "%s subprocess I/O error"
#~ msgstr "błąd we/wy podprocesu %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "nie można wykonać stat na %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "nie można zmienić uprawnień do %s"
@@ -475,9 +573,6 @@ msgstr "pamięć wyczerpana"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "podproces %s zakończył się kodem wyjścia %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "`"
@@ -607,6 +702,18 @@ msgstr "pamięć wyczerpana"
#~ msgid "Unknown signal %d"
#~ msgstr "Nieznany sygnał %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Czasy wykonywania (w sekundach)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU użytkownika"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU systemu"
+
+#~ msgid "wall clock"
+#~ msgstr "zegarowo"
+
#~ msgid "iconv function not usable"
#~ msgstr "nie można użyć funkcji iconv"
@@ -644,16 +751,12 @@ msgstr "pamięć wyczerpana"
#~ msgstr "(C)"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
#~ "Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n"
-#~ "<http://gnu.org/licenses/gpl.html>\n"
+#~ "<%s>.\n"
#~ "To jest oprogramowanie wolnodostępne: można je modyfikować i "
#~ "rozpowszechniać.\n"
#~ "Nie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
@@ -722,11 +825,8 @@ msgstr "pamięć wyczerpana"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s i inni.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
#~ "Prosimy zgłaszać błędy na adres <%s>.\n"
#~ "Błędy w tłumaczeniu prosimy zgłaszać na adres <translation-team-pl@lists."
#~ "sourceforge.net>.\n"
@@ -737,13 +837,8 @@ msgstr "pamięć wyczerpana"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "Strona domowa pakietu %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/"
-#~ "gethelp/>.\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Ogólna pomoc przy używaniu oprogramowania GNU: <%s>.\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle nie powiodło się"
@@ -757,6 +852,9 @@ msgstr "pamięć wyczerpana"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "podproces %s dostał krytyczny sygnał %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "nie udało się ustawić deskryptora pliku w tryb tekstowy/binarny"
+
#~ msgid "stdin"
#~ msgstr "standardowego wejścia"
@@ -784,11 +882,11 @@ msgstr "pamięć wyczerpana"
#~ msgid "cannot perform formatted output"
#~ msgstr "nie można sformatować wyjścia"
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "błędny argument opcji %s%s `%s'"
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "błędny argument opcji %s%s '%s'"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "błędny przyrostek argumentu opcji %s%s `%s'"
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "błędny przyrostek argumentu opcji %s%s '%s'"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "argument opcji %s%s `%s' zbyt duży"
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "argument opcji %s%s '%s' zbyt duży"
diff --git a/gl/po/pt.gmo b/gl/po/pt.gmo
index 9448afa5..bc00ead4 100644
--- a/gl/po/pt.gmo
+++ b/gl/po/pt.gmo
Binary files differ
diff --git a/gl/po/pt.po b/gl/po/pt.po
index 1f4d8f67..d40ab2de 100644
--- a/gl/po/pt.po
+++ b/gl/po/pt.po
@@ -1,39 +1,38 @@
-# Translation of gnulib messages to Portuguese
-# Copyright (C) 1996, 2014 Free Software Foundation, Inc.
+# Portuguese (Portugal) Translation for the gnulib Package.
+# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
+# Pedro Albuquerque <palbuquerque73@gmail.com>, 2019.
#
-# António João Serras Rendas <arendas@mail.telepac.pt>, 1996.
-# Américo Monteiro <a_monteiro@netcabo.pt>, 2010.
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2014-11-29 14:28-0000\n"
-"Last-Translator: Luís Oliveira <luismbo@gmail.com>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-26 10:40+0100\n"
+"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 1.6.10\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Gtranslator 2.91.7\n"
#: gl/lib/argp-help.c:158
#, c-format
msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
-msgstr "ARGP_HELP_FMT: valor %s é menos que ou igual a %s"
+msgstr "ARGP_HELP_FMT: valor %s é menor ou igual que %s"
#: gl/lib/argp-help.c:234
#, c-format
msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: ARGP_HELP_FMT parâmetro requer um valor"
+msgstr "%.*s: o parâmetro ARGP_HELP_FMT requer um valor"
#: gl/lib/argp-help.c:244
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: ARGP_HELP_FMT parâmetro desconhecido"
+msgstr "%.*s: parâmetro ARGP_HELP_FMT desconhecido"
#: gl/lib/argp-help.c:257
#, c-format
@@ -45,42 +44,42 @@ msgid ""
"Mandatory or optional arguments to long options are also mandatory or "
"optional for any corresponding short options."
msgstr ""
-"Os argumentos obrigatórios ou opcionais para as opções longas são também "
-"obrigatórios ou opcionais para qualquer opção curta correspondente."
+"Argumentos obrigatórios ou opcionais para opções longas são igualmente "
+"obrigatórios ou opcionais para opções curtas correspondentes."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
-msgstr "Utilização:"
+msgstr "Uso:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ou: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPÇÃO...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
-msgstr "Tente '%s --help' ou '%s --usage' para mais informação.\n"
+msgstr "Tente \"%s --help\" ou \"%s --usage\" para mais informação.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
-msgstr "Reporte bugs para %s.\n"
+msgstr "Reportar erros a %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Erro de sistema desconhecido"
#: gl/lib/argp-parse.c:91
msgid "give this help list"
-msgstr "dá esta lista de ajuda"
+msgstr "mostra esta lista de ajuda"
#: gl/lib/argp-parse.c:92
msgid "give a short usage message"
-msgstr "dá uma mensagem curta de utilização"
+msgstr "mostrar mensagem curta de uso"
#: gl/lib/argp-parse.c:93
msgid "NAME"
@@ -96,77 +95,77 @@ msgstr "SEGS"
#: gl/lib/argp-parse.c:96
msgid "hang for SECS seconds (default 3600)"
-msgstr "pára por SEGS segundos (predefinição 3600)"
+msgstr "espera SEGS segundos (predefinição 3600)"
#: gl/lib/argp-parse.c:154
msgid "print program version"
-msgstr "escreve a versão do programa"
+msgstr "mostra versão do programa"
#: gl/lib/argp-parse.c:171
msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(ERRO DO PROGRAMA) Nenhuma versão conhecida!?"
+msgstr "(ERRO DO PROGRAMA) Sem versão conhecida!?"
#: gl/lib/argp-parse.c:624
#, c-format
msgid "%s: Too many arguments\n"
-msgstr "%s: Demasiados argumentos\n"
+msgstr "%s: demasiados argumentos\n"
#: gl/lib/argp-parse.c:770
msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(ERRO DO PROGRAMA) A opção deveria ter sido reconhecida!?"
+msgstr "(ERRO DO PROGRAMA) A opção devia ter sido reconhecida!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: opção '-W %s' é ambígua\n"
+msgstr "%s: a opção \"%s%s\" é ambígua\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: opção '%s' é ambígua; possibilidades:"
+msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: opção não reconhecida '%c%s'\n"
+msgstr "%s: opção não reconhecida \"%s%s\"\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: opção '%c%s' não permite um argumento\n"
+msgstr "%s: a opção \"%s%s\" não permite um argumento\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: opção '--%s' requer um argumento\n"
+msgstr "\"%s: a opção \"%s%s\" requer um argumento\n"
#: gl/lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: opção inválida -- '%c'\n"
+msgstr "%s: opção inválida -- \"%c\"\n"
#: gl/lib/getopt.c:636 gl/lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: opção requer um argumento -- %c\n"
+msgstr "%s: a opção requer um argumento -- \"%c\"\n"
#: gl/lib/openat-die.c:38
#, c-format
msgid "unable to record current working directory"
-msgstr "incapaz de registar o directório de trabalho actual"
+msgstr "impossível gravar a pasta de trabalho actual"
#: gl/lib/openat-die.c:57
#, c-format
msgid "failed to return to initial working directory"
-msgstr "falha ao regressar ao directório de trabalho inicial"
+msgstr "falha ao voltar à pasta de trabalho inicial"
#: gl/lib/regcomp.c:135
msgid "Success"
-msgstr "Com sucesso"
+msgstr "Sucesso"
#: gl/lib/regcomp.c:138
msgid "No match"
-msgstr "Nenhuma equivalência"
+msgstr "Sem correspondência"
#: gl/lib/regcomp.c:141
msgid "Invalid regular expression"
@@ -174,32 +173,31 @@ msgstr "Expressão regular inválida"
#: gl/lib/regcomp.c:144
msgid "Invalid collation character"
-msgstr "Caractere de colação inválido"
+msgstr "Carácter de agrupamento inválido"
#: gl/lib/regcomp.c:147
msgid "Invalid character class name"
-msgstr "Nome de classe de caracteres inválido"
+msgstr "Nome de classe de carácter inválido"
#: gl/lib/regcomp.c:150
msgid "Trailing backslash"
-msgstr "Backslash de arrasto"
+msgstr "Barra invertida final"
#: gl/lib/regcomp.c:153
msgid "Invalid back reference"
-msgstr "Referência de retorno inválida"
+msgstr "Referência de recuo inválida"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ ou [^ não equivalente"
+msgstr "[, [^, [:, [., ou [= sem par"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr "( ou \\( não equivalente"
+msgstr "( ou \\( sem par"
#: gl/lib/regcomp.c:162
msgid "Unmatched \\{"
-msgstr "\\{ não equivalente"
+msgstr "\\{ sem par"
#: gl/lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
@@ -207,7 +205,7 @@ msgstr "Conteúdo de \\{\\} inválido"
#: gl/lib/regcomp.c:168
msgid "Invalid range end"
-msgstr "Final de alcance inválido"
+msgstr "Fim de intervalo inválido"
#: gl/lib/regcomp.c:171
msgid "Memory exhausted"
@@ -219,7 +217,7 @@ msgstr "Expressão regular precedente inválida"
#: gl/lib/regcomp.c:177
msgid "Premature end of regular expression"
-msgstr "Final prematuro da expressão regular"
+msgstr "Fim prematuro de expressão regular"
#: gl/lib/regcomp.c:180
msgid "Regular expression too big"
@@ -227,45 +225,361 @@ msgstr "Expressão regular muito grande"
#: gl/lib/regcomp.c:183
msgid "Unmatched ) or \\)"
-msgstr ") ou \\) não emparelhado"
+msgstr ") ou \\) sem par"
#: gl/lib/regcomp.c:676
msgid "No previous regular expression"
-msgstr "Nenhuma expressão regular prévia"
+msgstr "Sem expressão regular anterior"
#: gl/lib/xalloc-die.c:34
msgid "memory exhausted"
msgstr "memória esgotada"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: ARGP_HELP_FMT parâmetro deve ser positivo"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "descritores de ficheiro padrão"
+
+#~ msgid "invalid argument %s for %s"
+#~ msgstr "argumento %s inválido para %s"
+
+#~ msgid "ambiguous argument %s for %s"
+#~ msgstr "argumento %s ambíguo para %s"
+
+#~ msgid "Valid arguments are:"
+#~ msgstr "Os argumentos válidos são:"
+
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u libertados (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histograma de diário total\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histograma de diário de tamanho\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histograma de densidade\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Estatísticas de bitset:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Execuções acumuladas = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "impossível ler ficheiro de estatísticas"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "mau tamanho de ficheiro de estatísticas\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "impossível escrever ficheiro de estatísticas"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "impossível abrir ficheiro de estatísticas para escrita"
#~ msgid "program error"
#~ msgstr "erro de programa"
+#~ msgid "stack overflow"
+#~ msgstr "transporte da pilha"
+
+#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
+#~ msgstr "impossível encontrar uma pasta temporária, tente definir $TMPDIR"
+
+#~ msgid "cannot create a temporary directory using template \"%s\""
+#~ msgstr "impossível criar uma pasta temporária usando o modelo \"%s\""
+
+#~ msgid "cannot remove temporary file %s"
+#~ msgstr "impossível remover o ficheiro temporário %s"
+
+#~ msgid "cannot remove temporary directory %s"
+#~ msgstr "impossível remover a pasta temporária %s"
+
+#~ msgid "error closing file"
+#~ msgstr "erro ao fechar o ficheiro"
+
#~ msgid "write error"
#~ msgstr "erro de escrita"
+#~ msgid "preserving permissions for %s"
+#~ msgstr "preservar permissões para %s"
+
+#~ msgid "error while opening %s for reading"
+#~ msgstr "erro ao abrir %s para leitura"
+
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "impossível abrir a segurança %s para escrita"
+
+#~ msgid "error reading %s"
+#~ msgstr "erro ao ler %s"
+
+#~ msgid "error writing %s"
+#~ msgstr "erro ao escrever %s"
+
+#~ msgid "error after reading %s"
+#~ msgstr "erro após ler %s"
+
+#~ msgid "fdopen() failed"
+#~ msgstr "fdopen() falhou"
+
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "Compilador C# não encontrado, tente instalar mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "Máquina virtual C# não encontrada, tente instalar mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "[ sem par"
+
+#~ msgid "invalid character class"
+#~ msgstr "classe de carácter inválida"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "a sintaxe da classe de carácter é [[:espaço:]], não [:espaço:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "escape \\ não terminado"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "Conteúdo de \\{\\} inválido"
+
+#~ msgid "regular expression too big"
+#~ msgstr "expressão regular muito grande"
+
+#~ msgid "unbalanced ("
+#~ msgstr "( sem par"
+
+#~ msgid "no syntax specified"
+#~ msgstr "sem sintaxe especificada"
+
+#~ msgid "unbalanced )"
+#~ msgstr ") sem par"
+
+#~ msgid "%s subprocess failed"
+#~ msgstr "sub-processo %s falhou"
+
+#~ msgid "regular empty file"
+#~ msgstr "ficheiro normal vazio"
+
+#~ msgid "regular file"
+#~ msgstr "ficheiro normal"
+
+#~ msgid "directory"
+#~ msgstr "pasta"
+
+#~ msgid "symbolic link"
+#~ msgstr "ligação simbólica"
+
+#~ msgid "message queue"
+#~ msgstr "fila de mensagens"
+
+#~ msgid "semaphore"
+#~ msgstr "semáforo"
+
+#~ msgid "shared memory object"
+#~ msgstr "objecto de memória partilhado"
+
+#~ msgid "typed memory object"
+#~ msgstr "objecto de memória tipificado"
+
+#~ msgid "block special file"
+#~ msgstr "ficheiro especial de blocos"
+
+#~ msgid "character special file"
+#~ msgstr "ficheiro especial de caracteres"
+
+#~ msgid "contiguous data"
+#~ msgstr "dados contíguos"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "porta"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "ficheiro especial de blocos multiplexado"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "ficheiro especial de caracteres multiplexado"
+
+#~ msgid "multiplexed file"
+#~ msgstr "ficheiro multiplexado"
+
+#~ msgid "named file"
+#~ msgstr "ficheiro com nome"
+
+#~ msgid "network special file"
+#~ msgstr "ficheiro especial de rede"
+
+#~ msgid "migrated file with data"
+#~ msgstr "ficheiro migrado com dados"
+
+#~ msgid "migrated file without data"
+#~ msgstr "ficheiro migrado sem dados"
+
+#~ msgid "port"
+#~ msgstr "porta"
+
+#~ msgid "socket"
+#~ msgstr "socket"
+
+#~ msgid "whiteout"
+#~ msgstr "whiteout"
+
+#~ msgid "weird file"
+#~ msgstr "ficheiro estranho"
+
+#~ msgid "Address family for hostname not supported"
+#~ msgstr "Família de endereço para nome de servidor não suportado"
+
+#~ msgid "Temporary failure in name resolution"
+#~ msgstr "Falha temporária na resolução de nome"
+
+#~ msgid "Bad value for ai_flags"
+#~ msgstr "Valor errado para ai_flags"
+
+#~ msgid "Non-recoverable failure in name resolution"
+#~ msgstr "Falha irrecuperável na resolução de nome"
+
+#~ msgid "ai_family not supported"
+#~ msgstr "ai_family não suportada"
+
+#~ msgid "Memory allocation failure"
+#~ msgstr "Falha de alocação de memória"
+
+#~ msgid "No address associated with hostname"
+#~ msgstr "Sem endereço associado ao nome de anfitrião"
+
+#~ msgid "Name or service not known"
+#~ msgstr "Nome ou serviço desconhecido"
+
+#~ msgid "Servname not supported for ai_socktype"
+#~ msgstr "Nome de servidor não suportado para ai_socktype"
+
+#~ msgid "ai_socktype not supported"
+#~ msgstr "ai_socktype não suportado"
+
#~ msgid "System error"
#~ msgstr "Erro de sistema"
+#~ msgid "Argument buffer too small"
+#~ msgstr "Buffer de argumentos muito pequeno"
+
+#~ msgid "Processing request in progress"
+#~ msgstr "A processar pedido em curso"
+
+#~ msgid "Request canceled"
+#~ msgstr "Pedido cancelado"
+
+#~ msgid "Request not canceled"
+#~ msgstr "Pedido não cancelado"
+
+#~ msgid "All requests done"
+#~ msgstr "Todos os pedidos feitos"
+
+#~ msgid "Interrupted by a signal"
+#~ msgstr "Interrompido por um sinal"
+
+#~ msgid "Parameter string not correctly encoded"
+#~ msgstr "Cadeia de parâmetros incorrectamente codificada"
+
#~ msgid "Unknown error"
#~ msgstr "Erro desconhecido"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opção '--%s' não permite um argumento\n"
+#~ msgid "invalid source_version argument to compile_java_class"
+#~ msgstr "argumento source_version inválido para compile_java_class"
+
+#~ msgid "invalid target_version argument to compile_java_class"
+#~ msgstr "argumento target_version inválido para compile_java_class"
+
+#~ msgid "failed to create \"%s\""
+#~ msgstr "falha ao criar \"%s\""
+
+#~ msgid "error while writing \"%s\" file"
+#~ msgstr "erro ao escrever o ficheiro \"%s\""
+
+#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
+#~ msgstr "Compilador Java não encontrado, tente instalar gcj ou defina $JAVAC"
+
+#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
+#~ msgstr ""
+#~ "Máquina virtual Java não encontrada, tente instalar gij ou defina $JAVA"
+
+#~ msgid "%s subprocess I/O error"
+#~ msgstr "erro E/S no sub-processo %s"
+
+#~ msgid "cannot stat %s"
+#~ msgstr "impossível obter informação para %s"
+
+#~ msgid "cannot change permissions of %s"
+#~ msgstr "impossível alterar as permissões de %s"
+
+#~ msgid "cannot create directory %s"
+#~ msgstr "impossível criar a pasta %s"
+
+#~ msgid "Failed to open /dev/zero for read"
+#~ msgstr "Falha ao abrir /dev/zero para leitura"
+
+#~ msgid "creation of reading thread failed"
+#~ msgstr "falha ao criar tópico de leitura"
+
+#~ msgid "cannot set up nonblocking I/O to %s subprocess"
+#~ msgstr "impossível configurar E/S não-bloqueadora para sub-pocesso %s"
+
+#~ msgid "communication with %s subprocess failed"
+#~ msgstr "falha ao comunicar com o sub-processo %s"
+
+#~ msgid "write to %s subprocess failed"
+#~ msgstr "falha ao escrever no sub-processo %s"
+
+#~ msgid "read from %s subprocess failed"
+#~ msgstr "falha ao ler do sub-processo %s"
+
+#~ msgid "subprocess %s terminated with exit code %d"
+#~ msgstr "sub-processo %s terminou com código de saída %d"
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: opção não reconhecida '--%s'\n"
+#~ msgid "creation of threads failed"
+#~ msgstr "falha ao criar tópicos"
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: opção '-W %s' não permite um argumento\n"
+#~ msgid "%s subprocess terminated with exit code %d"
+#~ msgstr "sub-processo %s terminou com código de saída %d"
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: opção '-W %s' requer um argumento\n"
+#~ msgid "`"
+#~ msgstr "\""
+
+#~ msgid "'"
+#~ msgstr "\""
+
+#~ msgid "^[yY]"
+#~ msgstr "^[Ss]"
+
+#~ msgid "^[nN]"
+#~ msgstr "^[nN]"
+
+#~ msgid "setting permissions for %s"
+#~ msgstr "a definir permissões para %s"
#~ msgid "Hangup"
-#~ msgstr "Pendurar"
+#~ msgstr "Desligar"
#~ msgid "Interrupt"
#~ msgstr "Interromper"
@@ -277,7 +591,7 @@ msgstr "memória esgotada"
#~ msgstr "Instrução ilegal"
#~ msgid "Trace/breakpoint trap"
-#~ msgstr "Acompanhar/armadilha de ponto de ruptura"
+#~ msgstr "Armadilha de rastreio/ponto de quebra"
#~ msgid "Aborted"
#~ msgstr "Abortado"
@@ -289,22 +603,22 @@ msgstr "memória esgotada"
#~ msgstr "Morto"
#~ msgid "Bus error"
-#~ msgstr "Erro do bus"
+#~ msgstr "Erro de bus"
#~ msgid "Segmentation fault"
#~ msgstr "Falha de segmentação"
#~ msgid "Broken pipe"
-#~ msgstr "Pipe quebrado"
+#~ msgstr "Túnel quebrado"
#~ msgid "Alarm clock"
-#~ msgstr "Despertador"
+#~ msgstr "Alarme"
#~ msgid "Terminated"
#~ msgstr "Terminado"
#~ msgid "Urgent I/O condition"
-#~ msgstr "Condição I/O urgente"
+#~ msgstr "Condição E/S urgente"
#~ msgid "Stopped (signal)"
#~ msgstr "Parado (sinal)"
@@ -316,7 +630,7 @@ msgstr "memória esgotada"
#~ msgstr "Continuado"
#~ msgid "Child exited"
-#~ msgstr "Processo filho terminado"
+#~ msgstr "Filho saiu"
#~ msgid "Stopped (tty input)"
#~ msgstr "Parado (entrada tty)"
@@ -325,13 +639,13 @@ msgstr "memória esgotada"
#~ msgstr "Parado (saída tty)"
#~ msgid "I/O possible"
-#~ msgstr "Possível I/O"
+#~ msgstr "Possível E/S"
#~ msgid "CPU time limit exceeded"
-#~ msgstr "Limite de tempo de CPU excedido"
+#~ msgstr "Excedido limite de tempo da CPU"
#~ msgid "File size limit exceeded"
-#~ msgstr "Limite de tamanho de ficheiro excedido"
+#~ msgstr "Excedido limite de tamanho do ficheiro"
#~ msgid "Virtual timer expired"
#~ msgstr "Temporizador virtual expirado"
@@ -352,13 +666,13 @@ msgstr "memória esgotada"
#~ msgstr "Armadilha EMT"
#~ msgid "Bad system call"
-#~ msgstr "Má chamada do sistema"
+#~ msgstr "Má chamada de sistema"
#~ msgid "Stack fault"
-#~ msgstr "Falha do Stack"
+#~ msgstr "Falha de pilha"
#~ msgid "Information request"
-#~ msgstr "Requisito de informação"
+#~ msgstr "Pedido de informação"
#~ msgid "Power failure"
#~ msgstr "Falha de energia"
@@ -366,24 +680,198 @@ msgstr "memória esgotada"
#~ msgid "Resource lost"
#~ msgstr "Recurso perdido"
+#~ msgid "error writing to a closed pipe or socket"
+#~ msgstr "Erro ao escrever num túnel ou socket fechado"
+
+#~ msgid "cannot create pipe"
+#~ msgstr "impossível criar túnel"
+
#~ msgid "Real-time signal %d"
-#~ msgstr "Sinal de tempo real %d"
+#~ msgstr "Sinal %d de tempo real"
#~ msgid "Unknown signal %d"
-#~ msgstr "Sinal desconhecido %d"
+#~ msgstr "Sinal %d desconhecido"
+
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Tempos de execução (segundos)"
+
+#~ msgid "CPU user"
+#~ msgstr "utilizador de CPU"
+
+#~ msgid "CPU system"
+#~ msgstr "Sistema de CPU"
+
+#~ msgid "wall clock"
+#~ msgstr "relógio de parede"
+
+#~ msgid "iconv function not usable"
+#~ msgstr "função iconv inutilizável"
+
+#~ msgid "iconv function not available"
+#~ msgstr "função iconv indisponível"
+
+#~ msgid "character out of range"
+#~ msgstr "carácter fora do intervalo"
+
+#~ msgid "cannot convert U+%04X to local character set"
+#~ msgstr "impossível converter U+%04X para conjunto de caracteres local"
+
+#~ msgid "cannot convert U+%04X to local character set: %s"
+#~ msgstr "impossível converter U+%04X para conjunto de caracteres local: %s"
+
+#~ msgid "invalid user"
+#~ msgstr "utilizador inválido"
+
+#~ msgid "invalid group"
+#~ msgstr "grupo inválido"
+
+#~ msgid "invalid spec"
+#~ msgstr "especificação inválida"
+
+#~ msgid "unable to display error message"
+#~ msgstr "impossível mostrar mensagem de erro"
+
+#~ msgid "Packaged by %s (%s)\n"
+#~ msgstr "Empacotado por %s (%s)\n"
+
+#~ msgid "Packaged by %s\n"
+#~ msgstr "Empacotado por %s\n"
+
+#~ msgid "(C)"
+#~ msgstr "(©)"
#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+#~ "This is free software: you are free to change and redistribute it.\n"
+#~ "There is NO WARRANTY, to the extent permitted by law.\n"
#~ msgstr ""
-#~ "\n"
-#~ "Reporte problemas para: %s\n"
+#~ "Licença GPLv3+: GNU GPL versão 3 ou posterior <%s>\n"
+#~ "Este é um programa grátis: pode alterá-lo e redistribuí-lo.\n"
+#~ "Não há QUALQUER GARANTIA, até ao limite da Lei.\n"
+
+#~ msgid "Written by %s.\n"
+#~ msgstr "Escrito por %s\n"
+
+#~ msgid "Written by %s and %s.\n"
+#~ msgstr "Escrito por %s e %s.\n"
+
+#~ msgid "Written by %s, %s, and %s.\n"
+#~ msgstr "Escrito por %s, %s e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s\n"
+#~ "e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, %s, and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s, %s e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, %s, %s, and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s, %s, %s e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, %s, %s, %s,\n"
+#~ "and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s, %s, %s, %s\n"
+#~ "e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, %s, %s, %s,\n"
+#~ "%s, and %s.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s, %s, %s, %s,\n"
+#~ "%s e %s.\n"
+
+#~ msgid ""
+#~ "Written by %s, %s, %s,\n"
+#~ "%s, %s, %s, %s,\n"
+#~ "%s, %s, and others.\n"
+#~ msgstr ""
+#~ "Escrito por %s, %s, %s,\n"
+#~ "%s, %s, %s, %s,\n"
+#~ "%s, %s e outros.\n"
+
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "Reportar erros a: %s\n"
#~ msgid "Report %s bugs to: %s\n"
-#~ msgstr "Reporte problemas com %s para: %s\n"
+#~ msgstr "Reportar erros %s a: %s\n"
+
+#~ msgid "%s home page: <%s>\n"
+#~ msgstr "Página inicial %s: <%s>\n"
+
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Ajuda geral para utilizar programas GNU: <%s>\n"
+
+#~ msgid "_open_osfhandle failed"
+#~ msgstr "_open_osfhandle falhou"
+
+#~ msgid "cannot restore fd %d: dup2 failed"
+#~ msgstr "impossível restaurar fd %d: dup2 falhou"
+
+#~ msgid "%s subprocess"
+#~ msgstr "sub-processo %s"
+
+#~ msgid "%s subprocess got fatal signal %d"
+#~ msgstr "sub-processo %s obteve sinal fatal %d"
+
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "falha ao definir modo texto/binário do descritor de ficheiro"
+
+#~ msgid "stdin"
+#~ msgstr "stdin"
+
+#~ msgid "stdout"
+#~ msgstr "stdout"
+
+#~ msgid "stderr"
+#~ msgstr "stderr"
#~ msgid "unknown stream"
#~ msgstr "fluxo desconhecido"
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: opção ilegal -- %c\n"
+#~ msgid "failed to reopen %s with mode %s"
+#~ msgstr "falha ao reabrir %s com modo %s"
+
+#~ msgid "string comparison failed"
+#~ msgstr "erro na comparação da cadeia"
+
+#~ msgid "Set LC_ALL='C' to work around the problem."
+#~ msgstr "Defina LC_ALL=\"C\" para contornar o problema."
+
+#~ msgid "The strings compared were %s and %s."
+#~ msgstr "As cadeias comparadas foram %s e %s."
+
+#~ msgid "cannot perform formatted output"
+#~ msgstr "impossível formatar o resultado de saída"
+
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "argumento %s%s \"%s\" inválido"
+
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "sufixo inválido em %s%s, argumento \"%s\""
+
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "argumento %s%s \"%s\" muito grande"
diff --git a/gl/po/pt_BR.gmo b/gl/po/pt_BR.gmo
index 22bbca16..0cbf6aeb 100644
--- a/gl/po/pt_BR.gmo
+++ b/gl/po/pt_BR.gmo
Binary files differ
diff --git a/gl/po/pt_BR.po b/gl/po/pt_BR.po
index 47d02221..0900955c 100644
--- a/gl/po/pt_BR.po
+++ b/gl/po/pt_BR.po
@@ -1,17 +1,17 @@
# Brazilian Portuguese translations for gnulib package
# Traduções em português brasileiro para o pacote gnulib
-# Copyright (C) 2017 Free Software Foundation, Inc.
+# Copyright (C) 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
# Cyro Mendes De Moraes Neto <neto@conectiva.com.br>, 1998.
# Rodrigo Stulzer Lopes <rodrigo@conectiva.com.br>, 2001.
# Juan Carlos Castro y Castro <jcastro@vialink.com.br>, 2003.
-# Rafael Fontenelle <rafaelff@gnome.org>, 2013, 2017.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2013, 2017, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2017-01-19 06:00-0200\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 09:10-0200\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
"net>\n"
@@ -51,31 +51,31 @@ msgstr ""
"Argumentos obrigatórios ou opcionais para opções longas também o são para "
"quaisquer opções curtas correspondentes."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Uso:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ou: "
# , c-format
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPÇÃO...]"
# , c-format
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Tente \"%s --help\" ou \"%s --usage\" para mais informação.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Relate erros para %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Erro desconhecido de sistema"
@@ -121,30 +121,30 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ERRO NO PROGRAMA) A opção deveria ter sido reconhecida!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: a opção \"-W %s\" é ambígua\n"
+msgstr "%s: a opção \"%s%s\" é ambígua\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: a opção \"%s\" é ambígua; possibilidades:"
+msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:"
# , c-format
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: opção desconhecida \"%c%s\"\n"
+msgstr "%s: opção desconhecida \"%s%s\"\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: a opção \"%c%s\" não permite um argumento\n"
+msgstr "%s: a opção \"%s%s\" não permite um argumento\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: a opção \"--%s\" exige um argumento\n"
+msgstr "%s: a opção \"%s%s\" exige um argumento\n"
# , c-format
#: gl/lib/getopt.c:621
@@ -201,9 +201,8 @@ msgid "Invalid back reference"
msgstr "Retrorreferência inválida"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "[ ou [^ sem correspondente"
+msgstr "[, [^, [:, [., ou [= sem correspondente"
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -252,6 +251,11 @@ msgstr "Nenhuma expressão regular anterior"
msgid "memory exhausted"
msgstr "memória esgotada"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "descritores de arquivo padrão"
+
# , c-format
#~ msgid "invalid argument %s for %s"
#~ msgstr "argumento inválido %s para %s"
@@ -262,8 +266,53 @@ msgstr "memória esgotada"
#~ msgid "Valid arguments are:"
#~ msgstr "Argumentos válidos são:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: O parâmetro ARGP_HELP_FMT deve ser positivo"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u liberados (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u em cache (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "histograma de log de contagem\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "histograma de log de tamanho\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "histograma de densidade\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Estatística de bitset:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Execuções acumuladas = %u\n"
+
+# , c-format
+#~ msgid "cannot read stats file"
+#~ msgstr "não foi possível ler o arquivo de estado"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "tamanho inválido de arquivo de estado\n"
+
+# , c-format
+#~ msgid "cannot write stats file"
+#~ msgstr "não foi possível escrever o arquivo de estado"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "não foi possível abrir o arquivo de estado para escrita"
#~ msgid "program error"
#~ msgstr "erro do programa"
@@ -298,32 +347,61 @@ msgstr "memória esgotada"
#~ msgid "preserving permissions for %s"
#~ msgstr "preservando permissões de %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "erro ao abrir \"%s\" para leitura"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "erro ao abrir %s para leitura"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "não foi possível abrir o arquivo backup \"%s\" para escrita"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "não foi possível abrir o arquivo backup %s para escrita"
# , c-format
-#~ msgid "error reading \"%s\""
-#~ msgstr "erro ao ler \"%s\""
+#~ msgid "error reading %s"
+#~ msgstr "erro ao ler %s"
# , c-format
-#~ msgid "error writing \"%s\""
-#~ msgstr "erro ao escrever \"%s\""
+#~ msgid "error writing %s"
+#~ msgstr "erro ao escrever %s"
# , c-format
-#~ msgid "error after reading \"%s\""
-#~ msgstr "erro após leitura de \"%s\""
+#~ msgid "error after reading %s"
+#~ msgstr "erro após leitura de %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() falhou"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "O compilador C# não foi localizado, tente instalar pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "O compilador C# não foi localizado, tente instalar mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "A máquina virtual C# não foi localizada, tente instalar mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "[ não balanceado"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "A máquina virtual C# não foi localizada, tente instalar pnet"
+# , c-format
+#~ msgid "invalid character class"
+#~ msgstr "classe de caracteres inválida"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "a sintaxe da classe de caracteres é [[:space:]], não [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "escape \\ não finalizado"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "conteúdo inválido de \\{\\}"
+
+# , c-format
+#~ msgid "regular expression too big"
+#~ msgstr "expressão regular grande demais"
+
+#~ msgid "unbalanced ("
+#~ msgstr "( não balanceado"
+
+#~ msgid "no syntax specified"
+#~ msgstr "nenhuma sintaxe especificada"
+
+#~ msgid "unbalanced )"
+#~ msgstr ") não balanceado"
# , c-format
#~ msgid "%s subprocess failed"
@@ -338,33 +416,68 @@ msgstr "memória esgotada"
#~ msgid "directory"
#~ msgstr "diretório"
+#~ msgid "symbolic link"
+#~ msgstr "link simbólico"
+
+#~ msgid "message queue"
+#~ msgstr "fila de mensagem"
+
+#~ msgid "semaphore"
+#~ msgstr "semáforo"
+
+#~ msgid "shared memory object"
+#~ msgstr "objeto de memória compartilhada"
+
+#~ msgid "typed memory object"
+#~ msgstr "objeto de memória tipificada"
+
#~ msgid "block special file"
#~ msgstr "arquivo especial de bloco"
#~ msgid "character special file"
#~ msgstr "arquivo especial de caractere"
+#~ msgid "contiguous data"
+#~ msgstr "dados contíguos"
+
# first-in, first-out; abreviação muito usada no meio computacional em português -- Rafael
#~ msgid "fifo"
#~ msgstr "fifo"
-#~ msgid "symbolic link"
-#~ msgstr "link simbólico"
+# https://en.wikipedia.org/wiki/Unix_file_types#Door
+# Não traduzir para porta para evitar confusão com "port"
+#~ msgid "door"
+#~ msgstr "door"
-#~ msgid "socket"
-#~ msgstr "soquete"
+#~ msgid "multiplexed block special file"
+#~ msgstr "arquivo multiplexado especial de bloco"
-#~ msgid "message queue"
-#~ msgstr "fila de mensagem"
+#~ msgid "multiplexed character special file"
+#~ msgstr "arquivo multiplexado especial de caractere"
-#~ msgid "semaphore"
-#~ msgstr "semáforo"
+#~ msgid "multiplexed file"
+#~ msgstr "arquivo multiplexado"
-#~ msgid "shared memory object"
-#~ msgstr "objeto de memória compartilhada"
+#~ msgid "named file"
+#~ msgstr "arquivo nomeado"
-#~ msgid "typed memory object"
-#~ msgstr "objeto de memória tipificada"
+#~ msgid "network special file"
+#~ msgstr "arquivo especial de rede"
+
+#~ msgid "migrated file with data"
+#~ msgstr "arquivo migrado com dados"
+
+#~ msgid "migrated file without data"
+#~ msgstr "arquivo migrado sem dados"
+
+#~ msgid "port"
+#~ msgstr "porta"
+
+#~ msgid "socket"
+#~ msgstr "soquete"
+
+#~ msgid "whiteout"
+#~ msgstr "whiteout"
#~ msgid "weird file"
#~ msgstr "arquivo estranho"
@@ -426,19 +539,6 @@ msgstr "memória esgotada"
#~ msgid "Unknown error"
#~ msgstr "Erro desconhecido"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: a opção \"--%s\" não permite um argumento\n"
-
-# , c-format
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: opção desconhecida \"--%s\"\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: a opção \"-W %s\" não permite um argumento\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: a opção \"-W %s\" exige um argumento\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "argumento source_version inválido para compile_java_class"
@@ -467,6 +567,10 @@ msgstr "memória esgotada"
#~ msgstr "erro de E/S no subprocesso %s"
# , c-format
+#~ msgid "cannot stat %s"
+#~ msgstr "não foi possível obter estado de %s"
+
+# , c-format
#~ msgid "cannot change permissions of %s"
#~ msgstr "não foi possível mudar permissões de %s"
@@ -505,9 +609,6 @@ msgstr "memória esgotada"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "subprocesso %s terminado com código de saída %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "“"
@@ -667,6 +768,19 @@ msgstr "memória esgotada"
#~ msgid "Unknown signal %d"
#~ msgstr "Sinal desconhecido %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Tempos de execução (segundos)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU usuário"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU sistema"
+
+# Sinal SIGALRM
+#~ msgid "wall clock"
+#~ msgstr "relógio de parede"
+
#~ msgid "iconv function not usable"
#~ msgstr "função iconv não utilizável"
@@ -707,19 +821,13 @@ msgstr "memória esgotada"
#~ msgstr "(C)"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/"
-#~ "gpl.html>\n"
+#~ "Licença GPLv3+: GNU GPL versão 3 ou posterior <%s>\n"
#~ "Este é um software livre: você é livre para alterá-lo e redistribuí-lo.\n"
#~ "NÃO Hà QUALQUER GARANTIA, na máxima extensão permitida em lei.\n"
-#~ "\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Escrito por %s.\n"
@@ -786,11 +894,8 @@ msgstr "memória esgotada"
#~ "%s, %s e outros.\n"
# Adicionado endereço de email da equipe, conforme solicitação do desenvolvedor -- Rafael
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
#~ "Relate erros para: %s\n"
#~ "Relate erros de tradução para <http://ldpbr-translation@lists.sourceforge."
#~ "net>\n"
@@ -801,11 +906,8 @@ msgstr "memória esgotada"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "Página do %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Página do %s: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr "Ajuda para uso de softwares GNU: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Ajuda para uso de softwares GNU: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle falhou"
@@ -821,6 +923,9 @@ msgstr "memória esgotada"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "o subprocesso %s recebeu sinal fatal %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "falha ao definir modo texto/binário do descritor de arquivo"
+
#~ msgid "stdin"
#~ msgstr "entrada padrão (stdin)"
@@ -850,17 +955,39 @@ msgstr "memória esgotada"
# %s%s é hífen e opção, `%s' é o argumento da opção
# , c-format
-#~ msgid "invalid %s%s argument `%s'"
+#~ msgid "invalid %s%s argument '%s'"
#~ msgstr "argumento inválido para %s%s: \"%s\""
# %s%s é hífen e opção, `%s' é o argumento da opção
# , c-format
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "sufixo inválido no argumento para %s%s: \"%s\""
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "sufixo inválido no argumento para %s%s \"%s\""
# %s%s é hífen e opção, `%s' é o argumento da opção
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "argumento grande demais para %s%s: \"%s\""
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "argumento para %s%s \"%s\" é grande demais"
+
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "Página do %s: <https://www.gnu.org/software/%s/>\n"
+
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: O parâmetro ARGP_HELP_FMT deve ser positivo"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: a opção \"--%s\" não permite um argumento\n"
+
+# , c-format
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: opção desconhecida \"--%s\"\n"
+
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: a opção \"-W %s\" não permite um argumento\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: a opção \"-W %s\" exige um argumento\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "François Pinard"
# , c-format
#~ msgid "%s: illegal option -- %c\n"
diff --git a/gl/po/ro.po b/gl/po/ro.po
index 88a5f734..c77a5306 100644
--- a/gl/po/ro.po
+++ b/gl/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mailutils 0.4\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2003-12-10 08:55+0200\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -46,29 +46,29 @@ msgstr ""
"asemenea obligatorii sau opþionale pentru toate opþiunile scurte "
"corespunzãtoare."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Folosire:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " sau: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [OPÞIUNE...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Încercaþi `%s --help' sau `%s --usage' pentru mai multe informaþii.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Raportaþi bug-urile la %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
#, fuzzy
msgid "Unknown system error"
msgstr "tip de mesaj necunoscut"
@@ -249,6 +249,11 @@ msgstr "Nu existã fiºier anterior"
msgid "memory exhausted"
msgstr "Memorie plinã"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#, fuzzy
#~ msgid "invalid argument %s for %s"
#~ msgstr "nume etichetã(tag) invalid `%s' pentru `%s'"
diff --git a/gl/po/ru.gmo b/gl/po/ru.gmo
index 9973fdd3..a244dfe7 100644
--- a/gl/po/ru.gmo
+++ b/gl/po/ru.gmo
Binary files differ
diff --git a/gl/po/ru.po b/gl/po/ru.po
index 9f51ee9f..01679920 100644
--- a/gl/po/ru.po
+++ b/gl/po/ru.po
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the gnulib package.
#
# Sergey Poznyakoff <gray@gnu.org>, 2003,2004,2005.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011.
+# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-08-22 21:05+0400\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-21 18:46+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
-"Language-Team: Russian <gnu@mx.ru>\n"
+"Language-Team: Russian <gnu@d07.ru>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,7 +19,7 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 1.0\n"
+"X-Generator: Lokalize 2.0\n"
#: gl/lib/argp-help.c:158
#, c-format
@@ -49,31 +49,31 @@ msgstr ""
"ОбÑзательные или необÑзательные аргументы к длинным именам параметров "
"оÑтаютÑÑ Ñ‚Ð°ÐºÐ¾Ð²Ñ‹Ð¼Ð¸ и к ÑоответÑтвующим коротким параметрам."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "ИÑпользование:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " или: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [ПÐРÐМЕТР...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
"Попробуйте «%s --help» или «%s --usage» Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробного "
"опиÑаниÑ.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Об ошибках Ñообщай по адреÑу %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
@@ -119,29 +119,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ОШИБКРПРОГРÐММЫ) Параметр должен был быть раÑпознан!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: двуÑмыÑленный параметр «-W %s»\n"
+msgstr "%s: двуÑмыÑленный параметр «%s%s»\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: двуÑмыÑленный параметр «%s»; возможные варианты:"
+msgstr "%s: двуÑмыÑленный параметр «%s%s»; возможные варианты:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: нераÑпознанный параметр «%c%s»\n"
+msgstr "%s: нераÑпознанный параметр «%s%s»\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%c%s» аргумент не разрешён\n"
+msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%s%s» Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать аргумент\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «--%s» требуетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
+msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%s%s» требуетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -192,9 +192,8 @@ msgid "Invalid back reference"
msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑÑылка"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "ÐÐµÐ¿Ð°Ñ€Ð½Ð°Ñ [ или [^"
+msgstr "ÐÐµÐ¿Ð°Ñ€Ð½Ð°Ñ [, [^, [:, [. или [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -240,6 +239,11 @@ msgstr "ОтÑутÑтвует предыдущее регулÑрное вырÐ
msgid "memory exhausted"
msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "Ñтандартные файловые деÑкрипторы"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "неверный аргумент %s Ð´Ð»Ñ %s"
@@ -249,8 +253,51 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "Valid arguments are:"
#~ msgstr "Верные аргументы:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: значение параметра ARGP_HELP_FMT должно быть положительным"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u оÑвобождено (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u кÑшировано (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u кÑшировано (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u кÑшировано (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "количеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð»Ð¾Ð³Ð°Ñ€Ð¸Ñ„Ð¼Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð³Ð¸Ñтограмма\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "Ñ€Ð°Ð·Ð¼ÐµÑ€Ð½Ð°Ñ Ð»Ð¾Ð³Ð°Ñ€Ð¸Ñ„Ð¼Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð³Ð¸Ñтограмма\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "гиÑтограмма плотноÑти\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "СтатиÑтика bitset:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Ðакопленных запуÑков = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "невозможно прочитать файл stats"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "некорректный размер файла stats\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "невозможно запиÑать файл stats"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "невозможно открыть файл stats Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
#~ msgid "program error"
#~ msgstr "Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
@@ -279,29 +326,56 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "preserving permissions for %s"
#~ msgstr "ÑохранÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð°Ð²Ð° доÑтупа Ð´Ð»Ñ %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "ошибка при открытии «%s» Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "ошибка при открытии файла %s Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "не удалоÑÑŒ открыть файл резервной копии «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "не удалоÑÑŒ открыть файл резервной копии %s Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи"
-#~ msgid "error reading \"%s\""
-#~ msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%s»"
+#~ msgid "error reading %s"
+#~ msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "ошибка запиÑи «%s»"
+#~ msgid "error writing %s"
+#~ msgstr "ошибка запиÑи %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "ошибка поÑле Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Â«%s»"
+#~ msgid "error after reading %s"
+#~ msgstr "ошибка поÑле Ñ‡Ñ‚ÐµÐ½Ð¸Ñ %s"
#~ msgid "fdopen() failed"
#~ msgstr "ошибка при выполнении fdopen()"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "Ðе найден компилÑтор C#, попробуйте уÑтановить pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "Ðе найден компилÑтор C#, попробуйте уÑтановить mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "Ðе найдена Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð° C#, попробуйте уÑтановить mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ["
+
+#~ msgid "invalid character class"
+#~ msgstr "неправильный клаÑÑ Ñимволов"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "ÑинтакÑÐ¸Ñ ÐºÐ»Ð°ÑÑа Ñимволов: [[:space:]], а не [:space:]"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "Ðе найдена Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð° C#, попробуйте уÑтановить pnet"
+#~ msgid "unfinished \\ escape"
+#~ msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ \\ ÑÐºÑ€Ð°Ð½Ð¸Ñ€ÑƒÑŽÑ‰Ð°Ñ Ð¿Ð¾ÑледовательноÑÑ‚ÑŒ"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "неправильное Ñодержимое в \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "регулÑрное выражение Ñлишком большое"
+
+#~ msgid "unbalanced ("
+#~ msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "не указан ÑинтакÑиÑ"
+
+#~ msgid "unbalanced )"
+#~ msgstr "неÑбаланÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ )"
#~ msgid "%s subprocess failed"
#~ msgstr "подпроцеÑÑ %s завершилÑÑ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹"
@@ -315,21 +389,9 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "directory"
#~ msgstr "каталог"
-#~ msgid "block special file"
-#~ msgstr "блочный Ñпециальный файл"
-
-#~ msgid "character special file"
-#~ msgstr "Ñимвольный Ñпециальный файл"
-
-#~ msgid "fifo"
-#~ msgstr "файл-очередь"
-
#~ msgid "symbolic link"
#~ msgstr "ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ ÑÑылка"
-#~ msgid "socket"
-#~ msgstr "Ñокет"
-
#~ msgid "message queue"
#~ msgstr "очередь Ñообщений"
@@ -342,6 +404,51 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "typed memory object"
#~ msgstr "объект типизированной памÑти"
+#~ msgid "block special file"
+#~ msgstr "блочный Ñпециальный файл"
+
+#~ msgid "character special file"
+#~ msgstr "Ñимвольный Ñпециальный файл"
+
+#~ msgid "contiguous data"
+#~ msgstr "непрерывные данные"
+
+#~ msgid "fifo"
+#~ msgstr "файл-очередь"
+
+#~ msgid "door"
+#~ msgstr "дверь"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "мультиплекÑный блочный Ñпециальный файл"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "мультиплекÑный Ñимвольный Ñпециальный файл"
+
+#~ msgid "multiplexed file"
+#~ msgstr "мультиплекÑный файл"
+
+#~ msgid "named file"
+#~ msgstr "именованный файл"
+
+#~ msgid "network special file"
+#~ msgstr "Ñетевой Ñпециальный файл"
+
+#~ msgid "migrated file with data"
+#~ msgstr "переноÑной файл Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸"
+
+#~ msgid "migrated file without data"
+#~ msgstr "переноÑной файл без данных"
+
+#~ msgid "port"
+#~ msgstr "порт"
+
+#~ msgid "socket"
+#~ msgstr "Ñокет"
+
+#~ msgid "whiteout"
+#~ msgstr "замазка"
+
#~ msgid "weird file"
#~ msgstr "Ñтранный файл"
@@ -402,18 +509,6 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "Unknown error"
#~ msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «--%s» аргумент не разрешён\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: нераÑпознанный параметр «--%s»\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: у параметра «-W %s» не может быть аргумента\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «-W %s» требуетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "неверный аргумент source_version Ð´Ð»Ñ compile_java_class"
@@ -438,6 +533,9 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "%s subprocess I/O error"
#~ msgstr "ошибка вв/вывода подпроцеÑÑа %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "не удалоÑÑŒ выполнить stat Ð´Ð»Ñ %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "невозможно изменить права доÑтупа %s"
@@ -471,9 +569,6 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "подпроцеÑÑ %s завершилÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ выхода %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "ФренÑÐ¸Ñ ÐŸÐ¸Ð½Ð°Ñ€Ð´ (Franc,ois Pinard)"
-
#~ msgid "`"
#~ msgstr "«"
@@ -603,6 +698,18 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "Unknown signal %d"
#~ msgstr "ÐеизвеÑтный Ñигнал %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (Ñекунд)"
+
+#~ msgid "CPU user"
+#~ msgstr "пользовательÑкое Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° ЦП"
+
+#~ msgid "CPU system"
+#~ msgstr "ÑиÑтемное Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° ЦП"
+
+#~ msgid "wall clock"
+#~ msgstr "наÑтенные чаÑÑ‹"
+
#~ msgid "iconv function not usable"
#~ msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ iconv неприменима"
@@ -640,19 +747,13 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ GPLv3+: GNU GPL верÑии 3 или новее <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
-#~ "Это Ñвободное ПО: вы можете продавать и раÑпроÑтранÑÑ‚ÑŒ его.\n"
-#~ "Ðет ÐИКÐКИХ ГÐРÐÐТИЙ до Ñтепени, разрешённой законом.\n"
-#~ "\n"
+#~ "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ GPLv3+: GNU GPL верÑии 3 или новее <%s>.\n"
+#~ "Это Ñвободное ПО: вы можете изменÑÑ‚ÑŒ и раÑпроÑтранÑÑ‚ÑŒ его.\n"
+#~ "Ðет ÐИКÐКИХ ГÐРÐÐТИЙ в пределах дейÑтвующего законодательÑтва.\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Ðвтор программы: %s.\n"
@@ -718,12 +819,8 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s и другие.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Об ошибках Ñообщайте по адреÑу: %s\n"
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "Об ошибках Ñообщайте по адреÑу: %s\n"
#~ msgid "Report %s bugs to: %s\n"
#~ msgstr "Об ошибках в %s Ñообщайте по адреÑу: %s\n"
@@ -731,11 +828,8 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "ДомашнÑÑ Ñтраница %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "ДомашнÑÑ Ñтраница %s: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr "Справка по работе Ñ ÐŸÐž GNU: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Справка по работе Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð°Ð¼Ð¸ GNU: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle завершилаÑÑŒ неудачно"
@@ -749,6 +843,10 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "подпроцеÑÑ %s получил Ñигнал Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr ""
+#~ "не удалоÑÑŒ изменить текÑтовый/двоичный режим у файлового деÑкриптора"
+
#~ msgid "stdin"
#~ msgstr "stdin"
@@ -776,11 +874,32 @@ msgstr "закончилаÑÑŒ памÑÑ‚ÑŒ"
#~ msgid "cannot perform formatted output"
#~ msgstr "невозможно выполнить форматированный вывод"
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "неверный аргумент %s%s Ð´Ð»Ñ Â«%s»"
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "неверный аргумент %s%s в «%s»"
+
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "недопуÑтимый ÑÑƒÑ„Ñ„Ð¸ÐºÑ Ð² аргументе %s%s Ð´Ð»Ñ Â«%s»"
+
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "аргумент %s%s Ñлишком велик Ð´Ð»Ñ Â«%s»"
+
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "ДомашнÑÑ Ñтраница %s: <https://www.gnu.org/software/%s/>\n"
+
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: значение параметра ARGP_HELP_FMT должно быть положительным"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «--%s» аргумент не разрешён\n"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "неверный ÑÑƒÑ„Ñ„Ð¸ÐºÑ %s%s в аргументе «%s»"
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: нераÑпознанный параметр «--%s»\n"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "значение %s%s аргумента «%s» Ñлишком велико"
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: у параметра «-W %s» не может быть аргумента\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «-W %s» требуетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "ФренÑÐ¸Ñ ÐŸÐ¸Ð½Ð°Ñ€Ð´ (Franc,ois Pinard)"
diff --git a/gl/po/rw.po b/gl/po/rw.po
index c69e5c79..047ca657 100644
--- a/gl/po/rw.po
+++ b/gl/po/rw.po
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mailutils 0.6\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2005-04-04 10:55-0700\n"
"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
@@ -72,30 +72,30 @@ msgstr ""
"Cyangwa Bitari ngombwa ingingo Kuri Amahitamo Cyangwa Bitari ngombwa "
"kugirango Amahitamo"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Ikoresha:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
#, fuzzy
msgid " or: "
msgstr "Cyangwa"
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr ""
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Cyangwa kugirango Birenzeho Ibisobanuro"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr "Kuri"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
#, fuzzy
msgid "Unknown system error"
msgstr "Sisitemu Ikosa"
@@ -283,6 +283,11 @@ msgstr "Ikosa in Ibisanzwe imvugo Gushaka"
msgid "memory exhausted"
msgstr "Ububiko"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#, fuzzy
#~ msgid "invalid argument %s for %s"
#~ msgstr "Sibyo kugirango"
diff --git a/gl/po/sk.po b/gl/po/sk.po
index 052408e0..64f043be 100644
--- a/gl/po/sk.po
+++ b/gl/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: textutils 2.0.14\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2001-06-08 22:10 +02:00\n"
"Last-Translator: Stanislav Meduna <stano@trillian.eunet.sk>\n"
"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
@@ -42,25 +42,25 @@ msgid ""
"optional for any corresponding short options."
msgstr ""
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Pou¾itie: %s [PREPÍNAÈ] [SÚBOR]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Viac informácií získate príkazom `%s --help'.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
@@ -69,7 +69,7 @@ msgstr ""
"anglicky), pripomienky k prekladu zasielajte na adresu <sk@li.org> "
"(slovensky)."
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Neznáma systémová chyba"
@@ -245,6 +245,11 @@ msgstr "chyba pri vyhµadávaní pomocou regulárneho výrazu"
msgid "memory exhausted"
msgstr "vyèerpaná pamä»"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#, fuzzy
#~ msgid "invalid argument %s for %s"
#~ msgstr "chybný argument %s pre `%s'"
diff --git a/gl/po/sl.po b/gl/po/sl.po
index 8c891f9f..c3366a2d 100644
--- a/gl/po/sl.po
+++ b/gl/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2012-05-20 13:08+0200\n"
"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -48,29 +48,29 @@ msgstr ""
"Argumenti, navedeni kot obvezni ali neobvezni pri dolgi obliki izbire, so "
"obvezni ali neobvezni tudi pri vseh odgovarjajoÄih kratkih oblikah."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Uporaba:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " ali: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [IZBIRA...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Poskusite »%s --help« ali »%s --usage« za izÄrpnejÅ¡a navodila.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "PoroÄila o napakah: %s\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Neznana sistemska napaka"
@@ -239,6 +239,11 @@ msgstr "Prejšnjega regularnega izraza ni"
msgid "memory exhausted"
msgstr "zmanjkalo pomnilnika"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "neveljavni argument %s za %s"
diff --git a/gl/po/sr.po b/gl/po/sr.po
index 118e786e..5fb921ae 100644
--- a/gl/po/sr.po
+++ b/gl/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib-3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2013-11-17 16:47+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
@@ -46,29 +46,29 @@ msgstr ""
"Обавезни или опционални аргументи за дуге опције Ñу такође обавезни или "
"опционални за Ñве одговарајуће кратке опције."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Употреба:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " или: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [ОПЦИЈÐ...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Покушајте „%s --help“ или „%s --usage“ за више података.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Грешке пријавите на %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ðепозната грешка ÑиÑтема"
@@ -235,6 +235,11 @@ msgstr "Ðема претходног регуларног израза"
msgid "memory exhausted"
msgstr "меморија је потрошена"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "неиÑправан аргумент „%s“ за „%s“"
diff --git a/gl/po/sv.gmo b/gl/po/sv.gmo
index 046893d7..e081639c 100644
--- a/gl/po/sv.gmo
+++ b/gl/po/sv.gmo
Binary files differ
diff --git a/gl/po/sv.po b/gl/po/sv.po
index 11ccd1eb..6db0cefc 100644
--- a/gl/po/sv.po
+++ b/gl/po/sv.po
@@ -1,19 +1,19 @@
# Swedish messages for gnulib.
-# Copyright © 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright © 1997, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnulib package.
# Peter Antman <peter.antman@abc.se>, 1997.
# Thomas Olsson <cid95tho@lustudat.student.lu.se>, 1997.
# Daniel Resare <daniel@resare.com>, 1999, 2000.
-# Göran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011.
+# Göran Uddeborg <goeran@uddeborg.se>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2019.
#
-# $Revision: 1.10 $
+# $Revision: 1.14 $
#
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-08-22 19:16+0200\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-21 10:41+0200\n"
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -51,31 +51,31 @@ msgstr ""
"Obligatoriska eller valfria argument till långa flaggor är obligatoriska "
"eller valfria även för motsvarande korta flaggor."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Användning:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " eller: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [FLAGGA...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Försök med â€%s --help†eller â€%s --usage†för mer information.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
"Rapportera fel till %s.\n"
"Skicka synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Okänt systemfel"
@@ -121,29 +121,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(PROGRAMFEL) Flaggan borde ha känts igen!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+msgstr "%s: flaggan â€%s%s†är tvetydig\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: flaggan â€%s†är tvetydig: möjligheter:"
+msgstr "%s: flaggan â€%s%s†är tvetydig: möjligheter:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: okänd flagga \"%c%s\"\n"
+msgstr "%s: okänd flagga â€%s%sâ€\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: flaggan â€%c%s†tar inget argument\n"
+msgstr "%s: flaggan â€%s%s†tar inget argument\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: flaggan â€--%s†kräver ett argument\n"
+msgstr "%s: flaggan â€%s%s†kräver ett argument\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -194,9 +194,8 @@ msgid "Invalid back reference"
msgstr "Ogiltig bakåtreferens"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Ensam [ eller [^"
+msgstr "Ensam [, [^, [:, [. eller [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -242,6 +241,11 @@ msgstr "Inget föregående reguljärt uttryck"
msgid "memory exhausted"
msgstr "minnet slut"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "standard filbeskrivare"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "felaktigt argument %s till %s"
@@ -251,8 +255,51 @@ msgstr "minnet slut"
#~ msgid "Valid arguments are:"
#~ msgstr "Giltiga argument är:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: ARGP_HELP_FMT parametern måste vara positiv"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset-allokeringar, %u friade (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset-mängder, %u cachade (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset-återställningar, %u cachade (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset-tester, %u cachade (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset-listor\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "antalsloggshistogram\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "storleksloggshistogram\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "densitetshistogram\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Bitset-statistik:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Ackumulerade körningar = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "kan inte läsa statistikfilen"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "felaktig storlek på statistikfil\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "kan inte skriva statistikfilen"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "kan inte öppna statistikfilen för skrivning"
#~ msgid "program error"
#~ msgstr "programfel"
@@ -281,29 +328,56 @@ msgstr "minnet slut"
#~ msgid "preserving permissions for %s"
#~ msgstr "bevarar rättigheter på %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "fel när â€%s†öppnades för läsning"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "fel när %s öppnades för läsning"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "det gÃ¥r inte att öppna säkerthetskopiefil â€%s†för skrivning"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "det går inte att öppna säkerthetskopiefil %s för skrivning"
-#~ msgid "error reading \"%s\""
-#~ msgstr "fel vid läsning av â€%sâ€"
+#~ msgid "error reading %s"
+#~ msgstr "fel vid läsning av %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "fel vid skrivning av â€%sâ€"
+#~ msgid "error writing %s"
+#~ msgstr "fel vid skrivning av %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "fel efter läsning av â€%sâ€"
+#~ msgid "error after reading %s"
+#~ msgstr "fel efter läsning av %s"
#~ msgid "fdopen() failed"
#~ msgstr "fdopen() misslyckades"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "C#-kompilator hittades inte, försök installera pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "C#-kompilator hittades inte, försök installera mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "virtuell C#-maskinen hittades inte, försök installera mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "obalanserad ["
+
+#~ msgid "invalid character class"
+#~ msgstr "ogiltig teckenklass"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "teckenklassyntaxen är [[:space:]], inte [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "oavslutad \\-sekvens"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "ogiltigt innehåll i \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "för stort reguljärt uttryck"
+
+#~ msgid "unbalanced ("
+#~ msgstr "obalanserad ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "ingen syntax angiven"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "virtuell C#-maskinen hittades inte, försök installera pnet"
+#~ msgid "unbalanced )"
+#~ msgstr "obalanserad )"
#~ msgid "%s subprocess failed"
#~ msgstr "%s-underprocess misslyckades"
@@ -317,21 +391,9 @@ msgstr "minnet slut"
#~ msgid "directory"
#~ msgstr "katalog"
-#~ msgid "block special file"
-#~ msgstr "blockspecialfil"
-
-#~ msgid "character special file"
-#~ msgstr "teckenspecialfil"
-
-#~ msgid "fifo"
-#~ msgstr "fifo"
-
#~ msgid "symbolic link"
#~ msgstr "symbolisk länk"
-#~ msgid "socket"
-#~ msgstr "uttag (socket)"
-
#~ msgid "message queue"
#~ msgstr "meddelandekö"
@@ -344,6 +406,51 @@ msgstr "minnet slut"
#~ msgid "typed memory object"
#~ msgstr "objekt av typat minne"
+#~ msgid "block special file"
+#~ msgstr "blockspecialfil"
+
+#~ msgid "character special file"
+#~ msgstr "teckenspecialfil"
+
+#~ msgid "contiguous data"
+#~ msgstr "sammanhängande data"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "dörr"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "multiplexad blockspecialfil"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "multiplexad teckenspecialfil"
+
+#~ msgid "multiplexed file"
+#~ msgstr "multiplexad fil"
+
+#~ msgid "named file"
+#~ msgstr "namngiven fil"
+
+#~ msgid "network special file"
+#~ msgstr "nätverksspecialfil"
+
+#~ msgid "migrated file with data"
+#~ msgstr "migrerad fil med data"
+
+#~ msgid "migrated file without data"
+#~ msgstr "migrerad fil utan data"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "socket"
+#~ msgstr "uttag (socket)"
+
+#~ msgid "whiteout"
+#~ msgstr "övertäckningsfil"
+
#~ msgid "weird file"
#~ msgstr "konstig fil"
@@ -404,18 +511,6 @@ msgstr "minnet slut"
#~ msgid "Unknown error"
#~ msgstr "Okänt fel"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: flaggan â€--%s†tar inget argument\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: okänd flagga \"--%s\"\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: flaggan â€-W %s†kräver ett argument\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "ogiltigt source_version-argument till compile_java_class"
@@ -439,6 +534,9 @@ msgstr "minnet slut"
#~ msgid "%s subprocess I/O error"
#~ msgstr "%s-underprocess I/O-fel"
+#~ msgid "cannot stat %s"
+#~ msgstr "kan inte ta status på %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "kan inte ändra rättigheter på %s"
@@ -473,9 +571,6 @@ msgstr "minnet slut"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "%s-underprocess avslutad med slutstatus %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "François Pinard"
-
#~ msgid "`"
#~ msgstr "â€"
@@ -605,6 +700,18 @@ msgstr "minnet slut"
#~ msgid "Unknown signal %d"
#~ msgstr "Okänd signal %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Körtider (sekunder)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU användare"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU system"
+
+#~ msgid "wall clock"
+#~ msgstr "väggklocka"
+
#~ msgid "iconv function not usable"
#~ msgstr "iconv-funktion inte användbar"
@@ -642,20 +749,14 @@ msgstr "minnet slut"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/"
-#~ "gpl.html>.\n"
+#~ "Licens GPLv3+: GNU GPL version 3 eller senare <%s>.\n"
#~ "Detta är fri programvara: du får lov att ändra och vidaredistribuera "
#~ "den.\n"
#~ "Det finns INGEN GARANTI, så långt lagen tillåter.\n"
-#~ "\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Skrivet av %s.\n"
@@ -721,11 +822,8 @@ msgstr "minnet slut"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s med flera.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
+#~ msgid "Report bugs to: %s\n"
#~ msgstr ""
-#~ "\n"
#~ "Rapportera fel till: %s\n"
#~ "Skicka synpunkter på översättningen till: tp-sv@listor.tp-sv.se\n"
@@ -735,12 +833,8 @@ msgstr "minnet slut"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "%s hemsida: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "%s hemsida: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-#~ msgstr ""
-#~ "Allmän hjälp med att använda GNU-program: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "Allmän hjälp med att använda GNU-program: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "_open_osfhandle misslyckades"
@@ -754,6 +848,9 @@ msgstr "minnet slut"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "%s-underprocess fick ödesdiger signal %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "misslyckades att filbeskrivaren i text-/binärt läge"
+
#~ msgid "stdin"
#~ msgstr "standard in"
@@ -781,11 +878,11 @@ msgstr "minnet slut"
#~ msgid "cannot perform formatted output"
#~ msgstr "kan inte utföra formaterad utmatning"
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "felaktigt %s%s-argument \"%s\""
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "felaktigt %s%s-argument â€%sâ€"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "felaktigt suffix i %s%s-argument \"%s\""
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "felaktigt suffix i %s%s-argument â€%sâ€"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "%s%s argument \"%s\" är för stort"
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "%s%s-argumentet â€%s†är för stort"
diff --git a/gl/po/tr.po b/gl/po/tr.po
index 81b89611..22ae8f2c 100644
--- a/gl/po/tr.po
+++ b/gl/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: coreutils 5.3.0\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2005-03-14 04:17+0200\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -51,25 +51,25 @@ msgstr ""
"Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de "
"zorunludur.\n"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr ""
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr ""
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
#, fuzzy
msgid " [OPTION...]"
msgstr "Kullanım: %s [SEÇENEK]...\n"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, fuzzy, c-format
msgid "Report bugs to %s.\n"
msgstr ""
@@ -77,7 +77,7 @@ msgstr ""
"Yazılım hatalarını <%s> adresine,\n"
"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildirin.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Bilinmeyen sistem hatası"
@@ -254,6 +254,11 @@ msgstr "düzenli ifade (regular expression) aramasında hata oluştu"
msgid "memory exhausted"
msgstr "bellek tükendi"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "%s argümanı `%s' için geçersiz"
diff --git a/gl/po/uk.gmo b/gl/po/uk.gmo
index c4cf4246..900d70cd 100644
--- a/gl/po/uk.gmo
+++ b/gl/po/uk.gmo
Binary files differ
diff --git a/gl/po/uk.po b/gl/po/uk.po
index ab8336cb..cbefdeeb 100644
--- a/gl/po/uk.po
+++ b/gl/po/uk.po
@@ -3,15 +3,15 @@
# Copyright (C) 2010 Free Software Foundation, Inc.
#
# Sergey Poznyakoff <gray@gnu.org>, 2010.
-# Yuri Chornoivan <yurchor@ukr.net>, 2011.
+# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2019.
msgid ""
msgstr ""
-"Project-Id-Version: gnulib 3.0.0.6062.a6b16\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2011-08-22 09:50+0300\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 14:26+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
-"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,7 +19,7 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Lokalize 1.1\n"
+"X-Generator: Lokalize 19.03.70\n"
#: gl/lib/argp-help.c:158
#, c-format
@@ -48,30 +48,29 @@ msgid ""
msgstr ""
"Ðргументи, обов'Ñзкові Ð´Ð»Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ… ключів, Ñ” обов'Ñзковими й Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ñ…."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "ВикориÑтаннÑ:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " чи: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [ПÐРÐМЕТР...]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
-msgstr ""
-"Спробуйте `%s --help' або `%s --usage' Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½Ñ–ÑˆÐ¾Ð³Ð¾ опиÑу.\n"
+msgstr "Віддайте команду «%s --help» або «%s --usage», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Про помилки звітуйте на <%s>.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Ðевідома ÑиÑтемна помилка"
@@ -117,29 +116,29 @@ msgid "(PROGRAM ERROR) Option should have been recognized!?"
msgstr "(ПОМИЛКРПРОГРÐМУВÐÐÐЯ) Параметр мала бути розпізнана!?"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s: параметр '-W %s' неоднозначний\n"
+msgstr "%s: параметр «%s%s» не є однозначним\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s: параметр «%s» є неоднозначним, можливі варіанти:"
+msgstr "%s: неоднозначний параметр «%s%s»; можливі варіанти:"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s: невідомий параметр '%c%s'\n"
+msgstr "%s: невідомий параметр «%s%s»\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s: параметр '%c%s' не може мати аргументу\n"
+msgstr "%s: Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² до параметра «%s%s» не передбачено\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s: Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «--%s» Ñлід вказати аргумент\n"
+msgstr "%s: до параметра «%s%s» Ñлід додати аргумент\n"
#: gl/lib/getopt.c:621
#, c-format
@@ -190,9 +189,8 @@ msgid "Invalid back reference"
msgstr "ÐедійÑне зворотнє поÑиланнÑ"
#: gl/lib/regcomp.c:156
-#, fuzzy
msgid "Unmatched [, [^, [:, [., or [="
-msgstr "Ðезакрита [ або [^"
+msgstr "Вираз без парних [, [^, [:, [. або [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
@@ -238,6 +236,11 @@ msgstr "Ðе вказано попереднього формального ви
msgid "memory exhausted"
msgstr "пам'ÑÑ‚ÑŒ вичерпано"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "Ñтандартні деÑкриптори файлів"
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "некоректний аргумент %s Ð´Ð»Ñ %s"
@@ -247,8 +250,51 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "Valid arguments are:"
#~ msgstr "Дозволені аргументи такі:"
-#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
-#~ msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs, %u звільнено (%.2f%%).\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_sets, %u кешовано (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resets, %u кешовано (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests, %u кешовано (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid "count log histogram\n"
+#~ msgstr "гіÑтограма журналу лічильників\n"
+
+#~ msgid "size log histogram\n"
+#~ msgstr "гіÑтограма журналу розміру\n"
+
+#~ msgid "density histogram\n"
+#~ msgstr "гіÑтограма щільноÑÑ‚Ñ–\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "СтатиÑтика наборів бітів:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "Ðкумульовані запуÑки = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл ÑтатиÑтичних даних"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "помилковий розмір файла ÑтатиÑтичних даних\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл ÑтатиÑтичних даних."
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл ÑтатиÑтичних даних Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
#~ msgid "program error"
#~ msgstr "помилка програми"
@@ -278,29 +324,57 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "preserving permissions for %s"
#~ msgstr "Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð² доÑтупу до %s"
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "помилка під Ñ‡Ð°Ñ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ \"%s\" Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "помилка при відкриванні «%s» Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ"
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "неможливо відкрити резервний файл \"%s\" Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "не вдаєтьÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ резервний файл «%s» Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу"
-#~ msgid "error reading \"%s\""
-#~ msgstr "помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ \"%s\""
+#~ msgid "error reading %s"
+#~ msgstr "помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ %s"
-#~ msgid "error writing \"%s\""
-#~ msgstr "помилка запиÑу \"%s\""
+#~ msgid "error writing %s"
+#~ msgstr "помилка запиÑу %s"
-#~ msgid "error after reading \"%s\""
-#~ msgstr "помилка піÑÐ»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ \"%s\""
+#~ msgid "error after reading %s"
+#~ msgstr "помилка піÑÐ»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Â«%s»"
#~ msgid "fdopen() failed"
#~ msgstr "помилка fdopen()"
-#~ msgid "C# compiler not found, try installing pnet"
-#~ msgstr "не знайдено компілÑтора C#, Ñпробуйте вÑтановити pnet"
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "не знайдено компілÑтора C#, Ñпробуйте вÑтановити mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "не знайдено віртуальної машини C#, Ñпробуйте вÑтановити mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "неврівноважена дужка ["
+
+#~ msgid "invalid character class"
+#~ msgstr "некоректний ÐºÐ»Ð°Ñ Ñимволів"
-#~ msgid "C# virtual machine not found, try installing pnet"
-#~ msgstr "не знайдено віртуальної машини C#, Ñпробуйте вÑтановити pnet"
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr ""
+#~ "ÑинтакÑÐ¸Ñ ÐºÐ»Ð°Ñу Ñимволів Ñ” таким: [[:space:]], — а не таким: [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "незавершене ÐµÐºÑ€Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ \\"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "некоректний вміÑÑ‚ \\{\\}"
+
+#~ msgid "regular expression too big"
+#~ msgstr "занадто об'ємний формальний вираз"
+
+#~ msgid "unbalanced ("
+#~ msgstr "неврівноважена дужка ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "не вказано ÑинтакÑиÑу"
+
+#~ msgid "unbalanced )"
+#~ msgstr "неврівноважена дужка )"
#~ msgid "%s subprocess failed"
#~ msgstr "нащадок %s зазнав невдачі"
@@ -314,21 +388,9 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "directory"
#~ msgstr "каталог"
-#~ msgid "block special file"
-#~ msgstr "Ñпеціальний блоковий файл"
-
-#~ msgid "character special file"
-#~ msgstr "Ñпеціальний Ñимвольний файл"
-
-#~ msgid "fifo"
-#~ msgstr "fifo"
-
#~ msgid "symbolic link"
#~ msgstr "Ñимвольне поÑиланнÑ"
-#~ msgid "socket"
-#~ msgstr "гніздо"
-
#~ msgid "message queue"
#~ msgstr "черга повідомлень"
@@ -341,6 +403,51 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "typed memory object"
#~ msgstr "типізований об'єкт пам'ÑÑ‚Ñ–"
+#~ msgid "block special file"
+#~ msgstr "Ñпеціальний блоковий файл"
+
+#~ msgid "character special file"
+#~ msgstr "Ñпеціальний Ñимвольний файл"
+
+#~ msgid "contiguous data"
+#~ msgstr "неперервні дані"
+
+#~ msgid "fifo"
+#~ msgstr "fifo"
+
+#~ msgid "door"
+#~ msgstr "двері"
+
+#~ msgid "multiplexed block special file"
+#~ msgstr "Ñпеціальний файл ущільненого блокового приÑтрою"
+
+#~ msgid "multiplexed character special file"
+#~ msgstr "Ñпеціальний файл ущільненого Ñимвольного приÑтрою"
+
+#~ msgid "multiplexed file"
+#~ msgstr "ущільнений файл"
+
+#~ msgid "named file"
+#~ msgstr "іменований файл"
+
+#~ msgid "network special file"
+#~ msgstr "Ñпеціальний файл мережі"
+
+#~ msgid "migrated file with data"
+#~ msgstr "перенеÑений файл з даними"
+
+#~ msgid "migrated file without data"
+#~ msgstr "перенеÑений файл без даних"
+
+#~ msgid "port"
+#~ msgstr "порт"
+
+#~ msgid "socket"
+#~ msgstr "гніздо"
+
+#~ msgid "whiteout"
+#~ msgstr "забілюваннÑ"
+
#~ msgid "weird file"
#~ msgstr "дивний файл"
@@ -401,18 +508,6 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "Unknown error"
#~ msgstr "Ðевідома помилка"
-#~ msgid "%s: option '--%s' doesn't allow an argument\n"
-#~ msgstr "%s: параметр '--%s' не може мати аргументу\n"
-
-#~ msgid "%s: unrecognized option '--%s'\n"
-#~ msgstr "%s: невідомий параметр '--%s'\n"
-
-#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: параметр '-W %s' не може мати аргументу\n"
-
-#~ msgid "%s: option '-W %s' requires an argument\n"
-#~ msgstr "%s: Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «-W %s» Ñлід вказати аргумент\n"
-
#~ msgid "invalid source_version argument to compile_java_class"
#~ msgstr "недійÑне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ source_version Ð´Ð»Ñ compile_java_class"
@@ -438,6 +533,9 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "%s subprocess I/O error"
#~ msgstr "помилка вводу-виводу нащадка %s"
+#~ msgid "cannot stat %s"
+#~ msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑтатиÑтичні дані щодо %s"
+
#~ msgid "cannot change permissions of %s"
#~ msgstr "не вдаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ права доÑтупу до %s"
@@ -471,9 +569,6 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "%s subprocess terminated with exit code %d"
#~ msgstr "Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑ %s закінчивÑÑ ÐºÐ¾Ð´Ð¾Ð¼ %d"
-#~ msgid "Franc,ois Pinard"
-#~ msgstr "Franc,ois Pinard"
-
#~ msgid "`"
#~ msgstr "`"
@@ -603,6 +698,18 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "Unknown signal %d"
#~ msgstr "Ðевідомий Ñигнал %d"
+#~ msgid "Execution times (seconds)"
+#~ msgstr "Ð§Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ (у Ñекундах)"
+
+#~ msgid "CPU user"
+#~ msgstr "КориÑтувач процеÑора"
+
+#~ msgid "CPU system"
+#~ msgstr "СиÑтема процеÑора"
+
+#~ msgid "wall clock"
+#~ msgstr "наÑтінний годинник"
+
#~ msgid "iconv function not usable"
#~ msgstr "Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ iconv непридатна до вжитку"
@@ -640,20 +747,16 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgstr "©"
#~ msgid ""
-#~ "\n"
-#~ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-#~ "html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "\n"
-#~ "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GPLv3+: GNU GPL верÑÑ–Ñ— 3 або пізнішої <http://gnu.org/licenses/"
-#~ "gpl.html>\n"
-#~ "Це вільне програмне забезпеченнÑ: ви можете змінювати та розповÑюджувати "
+#~ "Умови Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ»Ð°Ð´ÐµÐ½Ð¾ у GPLv3+: GNU GPL верÑÑ–Ñ— 3 або новішій, <"
+#~ "%s>\n"
+#~ "Це вільне програмне забезпеченнÑ: ви можете вільно змінювати Ñ– поширювати "
#~ "його.\n"
-#~ "Ðе надаєтьÑÑ Ð–ÐžÐ”ÐИХ ГÐРÐÐТІЙ в межах дозволених законодавÑтвом.\n"
-#~ "\n"
+#~ "Вам не надаєтьÑÑ Ð–ÐžÐ”ÐИХ ГÐРÐÐТІЙ, окрім гарантій передбачених "
+#~ "законодавÑтвом.\n"
#~ msgid "Written by %s.\n"
#~ msgstr "Ðвтор: %s.\n"
@@ -718,12 +821,8 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s та інші.\n"
-#~ msgid ""
-#~ "\n"
-#~ "Report bugs to: %s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Про помилки звітуйте на %s\n"
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "Про помилки звітуйте на %s\n"
#~ msgid "Report %s bugs to: %s\n"
#~ msgstr "Про помилки у програмі %s звітуйте на %s\n"
@@ -731,13 +830,10 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "%s home page: <%s>\n"
#~ msgstr "Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка %s: <%s>\n"
-#~ msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-#~ msgstr "Ð´Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка %s: <http://www.gnu.org/software/%s/>\n"
-
-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+#~ msgid "General help using GNU software: <%s>\n"
#~ msgstr ""
-#~ "Загальна допомога щодо викориÑÑ‚Ð°Ð½Ð½Ñ ÐŸÐž GNU: <http://www.gnu.org/gethelp/"
-#~ ">\n"
+#~ "Загальна довідкова Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ "
+#~ "GNU: <%s>\n"
#~ msgid "_open_osfhandle failed"
#~ msgstr "помилка _open_osfhandle"
@@ -751,6 +847,10 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "%s subprocess got fatal signal %d"
#~ msgstr "Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑ %s отримав фатальний Ñигнал %d"
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr ""
+#~ "не вдалоÑÑ Ð²Ñтановити текÑтовий або двійковий режим Ð´Ð»Ñ Ð´ÐµÑкриптора файла"
+
#~ msgid "stdin"
#~ msgstr "stdin"
@@ -778,11 +878,32 @@ msgstr "пам'ÑÑ‚ÑŒ вичерпано"
#~ msgid "cannot perform formatted output"
#~ msgstr "неможливо здійÑнити форматований вивід"
-#~ msgid "invalid %s%s argument `%s'"
-#~ msgstr "некоректний аргумент Ð´Ð»Ñ %s%s: `%s'"
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "некоректний аргумент %s%s — «%s»"
+
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "некоректний ÑÑƒÑ„Ñ–ÐºÑ Ð² аргументі %s%s: «%s»"
+
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "%s%s, аргумент «%s» є занадто об’ємним"
+
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка %s: <https://www.gnu.org/software/%s/>\n"
+
+#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+#~ msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім"
+
+#~ msgid "%s: option '--%s' doesn't allow an argument\n"
+#~ msgstr "%s: параметр '--%s' не може мати аргументу\n"
-#~ msgid "invalid suffix in %s%s argument `%s'"
-#~ msgstr "некоректний ÑÑƒÑ„Ñ–ÐºÑ Ð² аргументі Ð´Ð»Ñ %s%s: `%s'"
+#~ msgid "%s: unrecognized option '--%s'\n"
+#~ msgstr "%s: невідомий параметр '--%s'\n"
-#~ msgid "%s%s argument `%s' too large"
-#~ msgstr "завеликий аргумент Ð´Ð»Ñ %s%s: `%s'"
+#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: параметр '-W %s' не може мати аргументу\n"
+
+#~ msgid "%s: option '-W %s' requires an argument\n"
+#~ msgstr "%s: Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «-W %s» Ñлід вказати аргумент\n"
+
+#~ msgid "Franc,ois Pinard"
+#~ msgstr "Franc,ois Pinard"
diff --git a/gl/po/vi.po b/gl/po/vi.po
index 2de25570..9a310f81 100644
--- a/gl/po/vi.po
+++ b/gl/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib-3.0.0.6062.a6b16\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2014-01-13 08:31+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -50,31 +50,31 @@ msgstr ""
"Các đối số là bắt buá»™c hay chỉ là tùy chá»n khi dùng vá»›i tùy chá»n dài thì tùy "
"chá»n ngắn tÆ°Æ¡ng ứng cÅ©ng vậy."
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "Cách dùng:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " hoặc:"
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr " [TÙY_CHỌN...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr ""
"Hãy chạy “%s --help†(trợ giúp) hay “%s --usage†(cách dùng) để xem thông "
"tin thêm.\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Hãy thông báo lỗi cho %s.\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "Gặp lỗi hệ thống chưa biết"
@@ -241,6 +241,11 @@ msgstr "Không có biểu thức chính quy đi trước"
msgid "memory exhausted"
msgstr "hết bộ nhớ"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "đối số không hợp lệ %s cho %s"
diff --git a/gl/po/zh_CN.po b/gl/po/zh_CN.po
index 102bbf9b..51ff7069 100644
--- a/gl/po/zh_CN.po
+++ b/gl/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gnulib 2.0.0.3462.e9796\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2010-02-26 09:54+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -49,29 +49,29 @@ msgstr ""
"选项完整形å¼æ‰€å¿…须用的或是å¯é€‰çš„å‚数,在使用选项缩写形å¼æ—¶ä¹Ÿæ˜¯å¿…须的或是å¯é€‰"
"的。"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
msgstr "用法:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
msgstr " 或者: "
-#: gl/lib/argp-help.c:1641
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
msgstr "[选项...]"
-#: gl/lib/argp-help.c:1668
+#: gl/lib/argp-help.c:1670
#, fuzzy, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
msgstr "请å°è¯•æ‰§è¡Œâ€œ%s --helpâ€æˆ–“%s --usageâ€æ¥èŽ·å–更多信æ¯ã€‚\n"
-#: gl/lib/argp-help.c:1696
+#: gl/lib/argp-help.c:1698
#, c-format
msgid "Report bugs to %s.\n"
msgstr "è¯·å‘ %s 报告错误。\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
msgstr "未知的系统错误"
@@ -239,6 +239,11 @@ msgstr "没有å‰æ¬¡æ­£åˆ™è¡¨è¾¾å¼"
msgid "memory exhausted"
msgstr "内存用尽"
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr ""
+
#~ msgid "invalid argument %s for %s"
#~ msgstr "%2$s çš„å‚æ•° %1$s 无效"
diff --git a/gl/po/zh_TW.gmo b/gl/po/zh_TW.gmo
index 9260e73c..335aea61 100644
--- a/gl/po/zh_TW.gmo
+++ b/gl/po/zh_TW.gmo
Binary files differ
diff --git a/gl/po/zh_TW.po b/gl/po/zh_TW.po
index f7713d82..745d8a65 100644
--- a/gl/po/zh_TW.po
+++ b/gl/po/zh_TW.po
@@ -1,92 +1,90 @@
# traditional Chinese translation of coreutils.
# Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gnulib package.
#
# # Merged from textutils, sh-utils and fileutils translation:
# # Yip Chi Lap <clyip@cs.hku.hk>, 1998.
# # Yuan-Chung Cheng <platin@ms.ccafps.khc.edu.tw>, 1998.
# # Abel Cheung <abelcheung@gmail.com>, 2002.
# # Pofeng Lee <pofeng@linux.org.tw>, 1998, 2002.
-#
# Abel Cheung <abelcheung@gmail.com>, 2005.
+# pan93412 <pan93412@gmail.com>, 2019.
#
msgid ""
msgstr ""
-"Project-Id-Version: coreutils 5.3.0\n"
+"Project-Id-Version: gnulib 4.0.0.2567\n"
"Report-Msgid-Bugs-To: bug-gnulib@gnu.org\n"
-"POT-Creation-Date: 2019-01-05 11:52+0000\n"
-"PO-Revision-Date: 2005-07-02 04:13+0800\n"
-"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
+"PO-Revision-Date: 2019-05-19 19:34+0800\n"
+"Last-Translator: pan93412 <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 2.2.1\n"
#: gl/lib/argp-help.c:158
#, c-format
msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
-msgstr ""
+msgstr "ARGP_HELP_FMT:%s 值å°æ–¼æˆ–等於 %s"
#: gl/lib/argp-help.c:234
#, c-format
msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr ""
+msgstr "%.*s:ARGP_HELP_FMT åƒæ•¸éœ€è¦ä¸€å€‹å€¼"
#: gl/lib/argp-help.c:244
#, c-format
msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr ""
+msgstr "%.*s:未知 ARGP_HELP_FMT åƒæ•¸"
#: gl/lib/argp-help.c:257
#, c-format
msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr ""
+msgstr "ARGP_HELP_FMT 中的廢棄內容:%s"
#: gl/lib/argp-help.c:1238
-#, fuzzy
msgid ""
"Mandatory or optional arguments to long options are also mandatory or "
"optional for any corresponding short options."
-msgstr "é•·é¸é …必須用的åƒæ•¸åœ¨ä½¿ç”¨çŸ­é¸é …時也是必須的。\n"
+msgstr "é•·é¸é …所使用的åƒæ•¸ï¼Œåœ¨ç›¸å°æ‡‰çš„短é¸é …也必須使用。"
-#: gl/lib/argp-help.c:1625
+#: gl/lib/argp-help.c:1627
msgid "Usage:"
-msgstr ""
+msgstr "用法:"
-#: gl/lib/argp-help.c:1629
+#: gl/lib/argp-help.c:1631
msgid " or: "
-msgstr ""
+msgstr " 或:"
-#: gl/lib/argp-help.c:1641
-#, fuzzy
+#: gl/lib/argp-help.c:1643
msgid " [OPTION...]"
-msgstr "用法:%s [é¸é …] [檔案]...\n"
+msgstr " [é¸é ……]"
-#: gl/lib/argp-help.c:1668
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1670
+#, c-format
msgid "Try '%s --help' or '%s --usage' for more information.\n"
-msgstr "請嘗試執行‘%s --help’來ç²å–更多資訊。\n"
+msgstr "嘗試「%s --helpã€æˆ–「%s --usageã€å–得更多資訊。\n"
-#: gl/lib/argp-help.c:1696
-#, fuzzy, c-format
+#: gl/lib/argp-help.c:1698
+#, c-format
msgid "Report bugs to %s.\n"
-msgstr ""
-"\n"
-"è«‹å‘ <%s> 回報錯誤。\n"
+msgstr "è«‹å‘ %s 匯報錯誤。\n"
-#: gl/lib/argp-help.c:1896 gl/lib/error.c:195
+#: gl/lib/argp-help.c:1898 gl/lib/error.c:195
msgid "Unknown system error"
-msgstr "ä¸æ˜Žçš„系統錯誤"
+msgstr "未知系統錯誤"
#: gl/lib/argp-parse.c:91
msgid "give this help list"
-msgstr ""
+msgstr "æ供此說明清單"
#: gl/lib/argp-parse.c:92
msgid "give a short usage message"
-msgstr ""
+msgstr "æ供短用法訊æ¯"
#: gl/lib/argp-parse.c:93
msgid "NAME"
@@ -94,312 +92,477 @@ msgstr "å稱"
#: gl/lib/argp-parse.c:94
msgid "set the program name"
-msgstr ""
+msgstr "設定程å¼å稱"
#: gl/lib/argp-parse.c:95
msgid "SECS"
-msgstr ""
+msgstr "秒"
#: gl/lib/argp-parse.c:96
msgid "hang for SECS seconds (default 3600)"
-msgstr ""
+msgstr "掛斷秒數(é è¨­ 3600)"
#: gl/lib/argp-parse.c:154
-#, fuzzy
msgid "print program version"
-msgstr "讀å–時發生錯誤"
+msgstr "輸出程å¼ç‰ˆæœ¬"
#: gl/lib/argp-parse.c:171
msgid "(PROGRAM ERROR) No version known!?"
-msgstr ""
+msgstr "(程å¼éŒ¯èª¤ï¼‰æ²’有已知版本?ï¼"
#: gl/lib/argp-parse.c:624
-#, fuzzy, c-format
+#, c-format
msgid "%s: Too many arguments\n"
-msgstr "%s:找ä¸åˆ°æ­£ç¢ºæ ¼å¼çš„ %s 總和檢查值"
+msgstr "%s:éŽå¤šåƒæ•¸\n"
#: gl/lib/argp-parse.c:770
msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr ""
+msgstr "(程å¼éŒ¯èª¤ï¼‰é¸é …應該已被識別?ï¼"
#: gl/lib/getopt.c:278
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
-msgstr "%s:é¸é …‘%s’ä¸æ˜Žç¢º\n"
+msgstr "%s:「%s%sã€é¸é …ä¸æ˜Žç¢º\n"
#: gl/lib/getopt.c:284
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
-msgstr "%s:é¸é …‘%s’ä¸æ˜Žç¢º\n"
+msgstr "%s:「%s%sã€é¸é …ä¸æ˜Žç¢ºï¼›å¯èƒ½æ˜¯ï¼š"
#: gl/lib/getopt.c:319
-#, fuzzy, c-format
+#, c-format
msgid "%s: unrecognized option '%s%s'\n"
-msgstr "%s:無法識別的é¸é …‘%c%s’\n"
+msgstr "%s:無法識別「%s%sã€é¸é …\n"
#: gl/lib/getopt.c:345
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
-msgstr "%s:é¸é …‘%c%s’ä¸å¯é…åˆåƒæ•¸ä½¿ç”¨\n"
+msgstr "%s:「%s%sã€é¸é …ä¸æŽ¥å—åƒæ•¸\n"
#: gl/lib/getopt.c:360
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s%s' requires an argument\n"
-msgstr "%s:é¸é …‘%s’需è¦åƒæ•¸\n"
+msgstr "%s:「%s%sã€é¸é …需è¦åƒæ•¸\n"
#: gl/lib/getopt.c:621
-#, fuzzy, c-format
+#, c-format
msgid "%s: invalid option -- '%c'\n"
-msgstr "%s:無效的é¸é … ─ %c\n"
+msgstr "%s:無效é¸é … -- '%c'\n"
#: gl/lib/getopt.c:636 gl/lib/getopt.c:682
-#, fuzzy, c-format
+#, c-format
msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s:é¸é …需è¦åƒæ•¸ ─ %c\n"
+msgstr "%s:é¸é …需è¦åƒæ•¸ -- '%c'\n"
#: gl/lib/openat-die.c:38
-#, fuzzy, c-format
+#, c-format
msgid "unable to record current working directory"
-msgstr "無法建立目錄%s"
+msgstr "無法記錄目å‰å·¥ä½œç›®éŒ„"
#: gl/lib/openat-die.c:57
-#, fuzzy, c-format
+#, c-format
msgid "failed to return to initial working directory"
-msgstr "無法建立目錄%s"
+msgstr "無法回到åˆå§‹å·¥ä½œç›®éŒ„"
#: gl/lib/regcomp.c:135
msgid "Success"
-msgstr ""
+msgstr "æˆåŠŸ"
#: gl/lib/regcomp.c:138
msgid "No match"
-msgstr ""
+msgstr "無符åˆé …ç›®"
#: gl/lib/regcomp.c:141
-#, fuzzy
msgid "Invalid regular expression"
-msgstr "%s:無效的正è¦è¡¨ç¤ºå¼ï¼š%s"
+msgstr "æ­£è¦è¡¨ç¤ºå¼ç„¡æ•ˆ"
#: gl/lib/regcomp.c:144
-#, fuzzy
msgid "Invalid collation character"
-msgstr "無效的字元種類‘%s’"
+msgstr "定åºå­—元無效"
#: gl/lib/regcomp.c:147
-#, fuzzy
msgid "Invalid character class name"
-msgstr "無效的字元種類‘%s’"
+msgstr "字元類型å稱無效"
#: gl/lib/regcomp.c:150
msgid "Trailing backslash"
-msgstr ""
+msgstr "末尾å斜線"
#: gl/lib/regcomp.c:153
-#, fuzzy
msgid "Invalid back reference"
-msgstr "無效的類型‘%s’"
+msgstr "å‘後åƒè€ƒç„¡æ•ˆ"
#: gl/lib/regcomp.c:156
msgid "Unmatched [, [^, [:, [., or [="
-msgstr ""
+msgstr "ä¸å°ç¨±çš„ [ã€[^ã€[:ã€[. 或 [="
#: gl/lib/regcomp.c:159
msgid "Unmatched ( or \\("
-msgstr ""
+msgstr "ä¸å°ç¨±çš„ ( 或 \\("
#: gl/lib/regcomp.c:162
msgid "Unmatched \\{"
-msgstr ""
+msgstr "ä¸å°ç¨±çš„ \\{"
#: gl/lib/regcomp.c:165
msgid "Invalid content of \\{\\}"
-msgstr ""
+msgstr "\\{\\} 中內容無效"
#: gl/lib/regcomp.c:168
-#, fuzzy
msgid "Invalid range end"
-msgstr "無效的類型‘%s’"
+msgstr "çµæŸç¯„åœç„¡æ•ˆ"
#: gl/lib/regcomp.c:171
-#, fuzzy
msgid "Memory exhausted"
-msgstr "記憶體耗盡"
+msgstr "記憶體用盡"
#: gl/lib/regcomp.c:174
-#, fuzzy
msgid "Invalid preceding regular expression"
-msgstr "%s:無效的正è¦è¡¨ç¤ºå¼ï¼š%s"
+msgstr "å‰ç½®æ­£è¦è¡¨ç¤ºå¼ç„¡æ•ˆ"
#: gl/lib/regcomp.c:177
-#, fuzzy
msgid "Premature end of regular expression"
-msgstr "在正è¦é‹ç®—å¼æœå°‹æ™‚發生錯誤"
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŽæ—©çµæŸ"
#: gl/lib/regcomp.c:180
-#, fuzzy
msgid "Regular expression too big"
-msgstr "%s:無效的正è¦è¡¨ç¤ºå¼ï¼š%s"
+msgstr "æ­£è¦è¡¨ç¤ºå¼éŽé•·"
#: gl/lib/regcomp.c:183
msgid "Unmatched ) or \\)"
-msgstr ""
+msgstr "ä¸å°ç¨±çš„ ) 或 \\)"
#: gl/lib/regcomp.c:676
-#, fuzzy
msgid "No previous regular expression"
-msgstr "在正è¦é‹ç®—å¼æœå°‹æ™‚發生錯誤"
+msgstr "沒有上一個正è¦è¡¨ç¤ºå¼"
#: gl/lib/xalloc-die.c:34
msgid "memory exhausted"
-msgstr "記憶體耗盡"
+msgstr "記憶體用盡"
+
+#: gl/lib/xstdopen.c:34
+#, c-format
+msgid "standard file descriptors"
+msgstr "標準檔案æ述符"
#~ msgid "invalid argument %s for %s"
-#~ msgstr "%2$sçš„åƒæ•¸%1$s無效"
+#~ msgstr "傳入 %2$s 之åƒæ•¸ %1$s 無效"
#~ msgid "ambiguous argument %s for %s"
-#~ msgstr "%2$sçš„åƒæ•¸%1$sä¸æ˜Žç¢º"
+#~ msgstr "傳入 %2$s 之åƒæ•¸ %1$s ä¸æ˜Žç¢º"
#~ msgid "Valid arguments are:"
#~ msgstr "有效的åƒæ•¸ç‚ºï¼š"
+#~ msgid "%u bitset_allocs, %u freed (%.2f%%).\n"
+#~ msgstr "%u bitset_allocs,已釋放 %u (%.2f%%)。\n"
+
+#~ msgid "%u bitset_sets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_setsï¼Œå·²å¿«å– %u (%.2f%%)\n"
+
+#~ msgid "%u bitset_resets, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_resetsï¼Œå·²å¿«å– %u (%.2f%%)\n"
+
+#~ msgid "%u bitset_tests, %u cached (%.2f%%)\n"
+#~ msgstr "%u bitset_tests,%u å·²å¿«å– (%.2f%%)\n"
+
+#~ msgid "%u bitset_lists\n"
+#~ msgstr "%u bitset_lists\n"
+
+#~ msgid ""
+#~ "Bitset statistics:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Bitset 統計:\n"
+#~ "\n"
+
+#~ msgid "Accumulated runs = %u\n"
+#~ msgstr "ç´¯ç©åŸ·è¡Œæ¬¡æ•¸ = %u\n"
+
+#~ msgid "cannot read stats file"
+#~ msgstr "無法讀å–統計檔案"
+
+#~ msgid "bad stats file size\n"
+#~ msgstr "統計檔案大å°ç„¡æ•ˆ\n"
+
+#~ msgid "cannot write stats file"
+#~ msgstr "無法寫入統計檔案"
+
+#~ msgid "cannot open stats file for writing"
+#~ msgstr "無法開啟統計檔案寫入"
+
+#~ msgid "program error"
+#~ msgstr "程å¼éŒ¯èª¤"
+
+#~ msgid "stack overflow"
+#~ msgstr "堆疊溢出"
+
+#~ msgid "cannot find a temporary directory, try setting $TMPDIR"
+#~ msgstr "未找到暫存目錄,請嘗試設定 $TMPDIR"
+
+#~ msgid "cannot create a temporary directory using template \"%s\""
+#~ msgstr "無法使用「%sã€ç¯„本建立暫存目錄"
+
+#~ msgid "cannot remove temporary file %s"
+#~ msgstr "無法移除暫存檔 %s"
+
+#~ msgid "cannot remove temporary directory %s"
+#~ msgstr "無法移除暫存目錄 %s"
+
+#~ msgid "error closing file"
+#~ msgstr "關閉檔案時發生錯誤"
+
#~ msgid "write error"
#~ msgstr "寫入時發生錯誤"
-#, fuzzy
-#~ msgid "error while opening \"%s\" for reading"
-#~ msgstr "無法開啟 %s 來讀å–資料"
+#~ msgid "preserving permissions for %s"
+#~ msgstr "正在ä¿ç•™ %s 的權é™"
-#, fuzzy
-#~ msgid "cannot open backup file \"%s\" for writing"
-#~ msgstr "無法開啟%s來讀å–資料"
+#~ msgid "error while opening %s for reading"
+#~ msgstr "é–‹å•Ÿ %s 讀å–時發生錯誤"
-#, fuzzy
-#~ msgid "error reading \"%s\""
+#~ msgid "cannot open backup file %s for writing"
+#~ msgstr "無法開啟備份檔 %s 寫入"
+
+#~ msgid "error reading %s"
#~ msgstr "è®€å– %s 時發生錯誤"
-#, fuzzy
-#~ msgid "error writing \"%s\""
+#~ msgid "error writing %s"
#~ msgstr "寫入 %s 時發生錯誤"
-#, fuzzy
-#~ msgid "error after reading \"%s\""
-#~ msgstr "è®€å– %s 時發生錯誤"
+#~ msgid "error after reading %s"
+#~ msgstr "è®€å– %s 後發生錯誤"
-#, fuzzy
#~ msgid "fdopen() failed"
-#~ msgstr "開啟時發生錯誤"
+#~ msgstr "fdopen() 失敗"
+
+#~ msgid "C# compiler not found, try installing mono"
+#~ msgstr "未找到 C# ç·¨è­¯å™¨ï¼Œå˜—è©¦å®‰è£ mono"
+
+#~ msgid "C# virtual machine not found, try installing mono"
+#~ msgstr "未找到 C# è™›æ“¬æ©Ÿï¼Œå˜—è©¦å®‰è£ mono"
+
+#~ msgid "unbalanced ["
+#~ msgstr "ä¸å°ç¨±çš„ ["
+
+#~ msgid "invalid character class"
+#~ msgstr "字元類型無效"
+
+#~ msgid "character class syntax is [[:space:]], not [:space:]"
+#~ msgstr "字元類型語法為 [[:space:]] è€Œéž [:space:]"
+
+#~ msgid "unfinished \\ escape"
+#~ msgstr "未完æˆçš„ \\ 跳脫字元"
+
+#~ msgid "invalid content of \\{\\}"
+#~ msgstr "\\{\\} 的內容無效"
+
+#~ msgid "regular expression too big"
+#~ msgstr "æ­£è¦è¡¨ç¤ºå¼éŽé•·"
+
+#~ msgid "unbalanced ("
+#~ msgstr "ä¸å°ç¨±çš„ ("
+
+#~ msgid "no syntax specified"
+#~ msgstr "未指定語法"
+
+#~ msgid "unbalanced )"
+#~ msgstr "ä¸å°ç¨±çš„ )"
-#, fuzzy
#~ msgid "%s subprocess failed"
-#~ msgstr "關閉時發生錯誤"
+#~ msgstr "%s å­åŸ·è¡Œç¨‹åºåŸ·è¡Œå¤±æ•—"
#~ msgid "regular empty file"
-#~ msgstr "普通空白檔案"
+#~ msgstr "一般空白檔案"
#~ msgid "regular file"
-#~ msgstr "普通檔案"
+#~ msgstr "一般檔案"
#~ msgid "directory"
#~ msgstr "目錄"
+#~ msgid "symbolic link"
+#~ msgstr "符號連çµ"
+
+#~ msgid "message queue"
+#~ msgstr "訊æ¯ä½‡åˆ—"
+
+#~ msgid "semaphore"
+#~ msgstr "旗號"
+
+#~ msgid "shared memory object"
+#~ msgstr "共用記憶體物件"
+
+#~ msgid "typed memory object"
+#~ msgstr "具類型記憶體物件"
+
#~ msgid "block special file"
#~ msgstr "å€å¡Šç‰¹æ®Šæª”案"
#~ msgid "character special file"
#~ msgstr "字元特殊檔案"
+#~ msgid "contiguous data"
+#~ msgstr "連續資料"
+
#~ msgid "fifo"
#~ msgstr "fifo"
-#~ msgid "symbolic link"
-#~ msgstr "符號連çµ"
+#~ msgid "door"
+#~ msgstr "é–€ (door)"
-#~ msgid "socket"
-#~ msgstr "socket"
+#~ msgid "multiplexed block special file"
+#~ msgstr "多工å€å¡Šç‰¹æ®Šæª”"
-#~ msgid "message queue"
-#~ msgstr "訊æ¯ä½‡åˆ—"
+#~ msgid "multiplexed character special file"
+#~ msgstr "多工字元特殊檔"
-#~ msgid "semaphore"
-#~ msgstr "semaphore"
+#~ msgid "multiplexed file"
+#~ msgstr "多工檔案"
-#~ msgid "shared memory object"
-#~ msgstr "共用記憶體物件"
+#~ msgid "named file"
+#~ msgstr "命å檔案"
-#, fuzzy
-#~ msgid "typed memory object"
-#~ msgstr "共用記憶體物件"
+#~ msgid "network special file"
+#~ msgstr "網路特殊檔案"
+
+#~ msgid "migrated file with data"
+#~ msgstr "移轉檔(å«è³‡æ–™ï¼‰"
+
+#~ msgid "migrated file without data"
+#~ msgstr "移轉檔(ä¸å«è³‡æ–™ï¼‰"
+
+#~ msgid "port"
+#~ msgstr "連線埠"
+
+#~ msgid "socket"
+#~ msgstr "socket"
+
+#~ msgid "whiteout"
+#~ msgstr "whiteout"
#~ msgid "weird file"
-#~ msgstr "ä¸æ­£å¸¸çš„檔案"
+#~ msgstr "ä¸æ­£å¸¸æª”案"
-#, fuzzy
#~ msgid "Address family for hostname not supported"
-#~ msgstr "ä¸æ”¯æ´ FIFO 檔案"
+#~ msgstr "ä¸æ”¯æ´ä¸»æ©Ÿå稱的ä½å€å®¶æ—"
+
+#~ msgid "Temporary failure in name resolution"
+#~ msgstr "解æžå稱時發生暫時性錯誤"
+
+#~ msgid "Bad value for ai_flags"
+#~ msgstr "ai_flags 的值無效"
+
+#~ msgid "Non-recoverable failure in name resolution"
+#~ msgstr "解æžå稱時發生無法復原錯誤"
-#, fuzzy
#~ msgid "ai_family not supported"
-#~ msgstr "ä¸æ”¯æ´ FIFO 檔案"
+#~ msgstr "ä¸æ”¯æ´ ai_family"
+
+#~ msgid "Memory allocation failure"
+#~ msgstr "分é…記憶體失敗"
+
+#~ msgid "No address associated with hostname"
+#~ msgstr "沒有ä½å€é—œè¯è‡³æ­¤ä¸»æ©Ÿå稱"
+
+#~ msgid "Name or service not known"
+#~ msgstr "å稱或æœå‹™æœªçŸ¥"
+
+#~ msgid "Servname not supported for ai_socktype"
+#~ msgstr "ai_socktype ä¸æ”¯æ´ä¼ºæœå™¨å稱 (Servname)"
-#, fuzzy
#~ msgid "ai_socktype not supported"
-#~ msgstr "ä¸æ”¯æ´ FIFO 檔案"
+#~ msgstr "ä¸æ”¯æ´ ai_socktype"
-#, fuzzy
#~ msgid "System error"
-#~ msgstr "寫入時發生錯誤"
+#~ msgstr "系統錯誤"
-#, fuzzy
-#~ msgid "Unknown error"
-#~ msgstr "ä¸æ˜Žçš„系統錯誤"
+#~ msgid "Argument buffer too small"
+#~ msgstr "åƒæ•¸ç·©è¡å€éŽå°"
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s:é¸é …‘--%s’ä¸å¯é…åˆåƒæ•¸ä½¿ç”¨\n"
+#~ msgid "Processing request in progress"
+#~ msgstr "正在處ç†è«‹æ±‚"
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s:無法識別的é¸é …‘--%s’\n"
+#~ msgid "Request canceled"
+#~ msgstr "å·²å–消請求"
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s:ä¸åˆæ³•çš„é¸é … ─ %c\n"
+#~ msgid "Request not canceled"
+#~ msgstr "未å–消請求"
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s:é¸é …‘-W %s’ä¸æ˜Žç¢º\n"
+#~ msgid "All requests done"
+#~ msgstr "所有請求完æˆ"
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s:é¸é …‘-W %s’ä¸å¯é…åˆåƒæ•¸ä½¿ç”¨\n"
+#~ msgid "Interrupted by a signal"
+#~ msgstr "é­ä¿¡è™Ÿä¸­æ­¢"
-#, fuzzy
-#~ msgid "block size"
-#~ msgstr "å€å¡Šç‰¹æ®Šæª”案"
+#~ msgid "Parameter string not correctly encoded"
+#~ msgstr "未正確編碼åƒæ•¸å­—串"
-#~ msgid "%s exists but is not a directory"
-#~ msgstr "%s已存在但ä¸æ˜¯ç›®éŒ„"
+#~ msgid "Unknown error"
+#~ msgstr "未知錯誤"
-#~ msgid "cannot change owner and/or group of %s"
-#~ msgstr "無法更改%sçš„æ“有者和/或所屬群組"
+#~ msgid "invalid source_version argument to compile_java_class"
+#~ msgstr "傳入 compile_java_class çš„ source_version åƒæ•¸ç„¡æ•ˆ"
-#~ msgid "cannot create directory %s"
-#~ msgstr "無法建立目錄%s"
+#~ msgid "invalid target_version argument to compile_java_class"
+#~ msgstr "傳入 compile_java_class çš„ target_version åƒæ•¸ç„¡æ•ˆ"
-#~ msgid "cannot chdir to directory %s"
-#~ msgstr "無法進入%s目錄"
+#~ msgid "failed to create \"%s\""
+#~ msgstr "無法建立「%sã€"
+
+#~ msgid "error while writing \"%s\" file"
+#~ msgstr "寫入「%sã€æª”時發生錯誤"
+
+#~ msgid "Java compiler not found, try installing gcj or set $JAVAC"
+#~ msgstr "未找到 Java ç·¨è­¯å™¨ã€‚å˜—è©¦å®‰è£ gcj,或設定 $JAVAC"
+
+#~ msgid "Java virtual machine not found, try installing gij or set $JAVA"
+#~ msgstr "未找到 Java è™›æ“¬æ©Ÿã€‚å˜—è©¦å®‰è£ gij,或設定 $JAVA"
+
+#~ msgid "%s subprocess I/O error"
+#~ msgstr "%s å­åŸ·è¡Œç¨‹åºç™¼ç”Ÿ I/O 錯誤"
+
+#~ msgid "cannot stat %s"
+#~ msgstr "無法å–å¾— %s 的資訊"
#~ msgid "cannot change permissions of %s"
-#~ msgstr "無法更改%s的權é™"
+#~ msgstr "無法變更 %s 的權é™"
+
+#~ msgid "cannot create directory %s"
+#~ msgstr "無法建立 %s 目錄"
-#, fuzzy
#~ msgid "Failed to open /dev/zero for read"
-#~ msgstr "%s:無法開啟來寫入資料"
+#~ msgstr "無法開啟 /dev/zero 讀å–"
-#, fuzzy
-#~ msgid "cannot create pipe"
-#~ msgstr "無法建立 %s éˆçµ"
+#~ msgid "creation of reading thread failed"
+#~ msgstr "建立讀å–執行緒失敗"
+
+#~ msgid "cannot set up nonblocking I/O to %s subprocess"
+#~ msgstr "ç„¡æ³•å° %s å­åŸ·è¡Œç¨‹åºè¨­å®šéžå°éŽ– I/O"
+
+#~ msgid "communication with %s subprocess failed"
+#~ msgstr "與 %s å­åŸ·è¡Œç¨‹åºé€šè¨Šå¤±æ•—"
+
+#~ msgid "write to %s subprocess failed"
+#~ msgstr "寫入 %s å­ç¨‹åºå¤±æ•—"
+
+#~ msgid "read from %s subprocess failed"
+#~ msgstr "自 %s å­åŸ·è¡Œç¨‹åºè®€å–失敗"
+
+#~ msgid "subprocess %s terminated with exit code %d"
+#~ msgstr "å­åŸ·è¡Œç¨‹åº %s 終止,çµæŸç¢¼ %d"
+
+#~ msgid "creation of threads failed"
+#~ msgstr "建立執行緒失敗"
+
+#~ msgid "%s subprocess terminated with exit code %d"
+#~ msgstr "å­åŸ·è¡Œç¨‹åº %s 終止,çµæŸç¢¼ %d"
#~ msgid "`"
-#~ msgstr "‘"
+#~ msgstr "「"
#~ msgid "'"
-#~ msgstr "’"
+#~ msgstr "ã€"
#~ msgid "^[yY]"
#~ msgstr "^[yY]"
@@ -407,14 +570,143 @@ msgstr "記憶體耗盡"
#~ msgid "^[nN]"
#~ msgstr "^[nN]"
+#~ msgid "setting permissions for %s"
+#~ msgstr "正在設定 %s 的權é™"
+
+#~ msgid "Hangup"
+#~ msgstr "掛斷"
+
+#~ msgid "Interrupt"
+#~ msgstr "中止"
+
+#~ msgid "Quit"
+#~ msgstr "çµæŸ"
+
+#~ msgid "Illegal instruction"
+#~ msgstr "無效指令"
+
+#~ msgid "Trace/breakpoint trap"
+#~ msgstr "追蹤 / 斷點陷阱"
+
+#~ msgid "Aborted"
+#~ msgstr "å–消"
+
+#~ msgid "Floating point exception"
+#~ msgstr "期望浮點數"
+
+#~ msgid "Killed"
+#~ msgstr "強制çµæŸ"
+
+#~ msgid "Bus error"
+#~ msgstr "匯æµæŽ’錯誤"
+
+#~ msgid "Segmentation fault"
+#~ msgstr "分割錯誤"
+
+#~ msgid "Broken pipe"
+#~ msgstr "管線æ壞"
+
+#~ msgid "Alarm clock"
+#~ msgstr "鬧é˜"
+
+#~ msgid "Terminated"
+#~ msgstr "終止"
+
+#~ msgid "Urgent I/O condition"
+#~ msgstr "緊急 I/O æ¢ä»¶"
+
+#~ msgid "Stopped (signal)"
+#~ msgstr "åœæ­¢ï¼ˆä¿¡è™Ÿï¼‰"
+
+#~ msgid "Stopped"
+#~ msgstr "åœæ­¢"
+
+#~ msgid "Continued"
+#~ msgstr "繼續"
+
+#~ msgid "Child exited"
+#~ msgstr "å­ç¨‹åºé€€å‡º"
+
+#~ msgid "Stopped (tty input)"
+#~ msgstr "åœæ­¢ï¼ˆtty 輸入)"
+
+#~ msgid "Stopped (tty output)"
+#~ msgstr "åœæ­¢ï¼ˆtty 輸出)"
+
+#~ msgid "I/O possible"
+#~ msgstr "å¯èƒ½ I/O"
+
+#~ msgid "CPU time limit exceeded"
+#~ msgstr "åˆ°é” CPU 時間上é™"
+
+#~ msgid "File size limit exceeded"
+#~ msgstr "到é”檔案大å°ä¸Šé™"
+
+#~ msgid "Virtual timer expired"
+#~ msgstr "虛擬計時器éŽæœŸ"
+
+#~ msgid "Profiling timer expired"
+#~ msgstr "分æžè¨ˆæ™‚器éŽæœŸ"
+
+#~ msgid "Window changed"
+#~ msgstr "已變更視窗"
+
+#~ msgid "User defined signal 1"
+#~ msgstr "使用者定義信號 1"
+
+#~ msgid "User defined signal 2"
+#~ msgstr "使用者定義信號 2"
+
+#~ msgid "EMT trap"
+#~ msgstr "EMT 陷阱"
+
+#~ msgid "Bad system call"
+#~ msgstr "無效系統呼å«"
+
+#~ msgid "Stack fault"
+#~ msgstr "堆疊錯誤"
+
+#~ msgid "Information request"
+#~ msgstr "資訊請求"
+
+#~ msgid "Power failure"
+#~ msgstr "é›»æºéŒ¯èª¤"
+
+#~ msgid "Resource lost"
+#~ msgstr "資æºéºå¤±"
+
+#~ msgid "error writing to a closed pipe or socket"
+#~ msgstr "寫入已關閉管線或 socket 時發生錯誤"
+
+#~ msgid "cannot create pipe"
+#~ msgstr "無法建立管線"
+
+#~ msgid "Real-time signal %d"
+#~ msgstr "å³æ™‚信號 %d"
+
+#~ msgid "Unknown signal %d"
+#~ msgstr "未知信號 %d"
+
+#~ msgid "Execution times (seconds)"
+#~ msgstr "執行次數(秒)"
+
+#~ msgid "CPU user"
+#~ msgstr "CPU 使用者"
+
+#~ msgid "CPU system"
+#~ msgstr "CPU 系統"
+
+#~ msgid "wall clock"
+#~ msgstr "掛é˜"
+
#~ msgid "iconv function not usable"
-#~ msgstr "iconv 功能無法使用"
+#~ msgstr "iconv 功能沒有用"
#~ msgid "iconv function not available"
-#~ msgstr "iconv 功能ä¸å­˜åœ¨"
+#~ msgstr "iconv 功能ä¸èƒ½ä½¿ç”¨"
#~ msgid "character out of range"
-#~ msgstr "字元值超出å¯æŽ¥å—的範åœä»¥å¤–"
+#~ msgstr "字元超出範åœ"
#~ msgid "cannot convert U+%04X to local character set"
#~ msgstr "無法將 U+%04X 轉æ›è‡³ä½¿ç”¨è€…的字元集"
@@ -423,26 +715,34 @@ msgstr "記憶體耗盡"
#~ msgstr "無法將 U+%04X 轉æ›è‡³ä½¿ç”¨è€…的字元集:%s"
#~ msgid "invalid user"
-#~ msgstr "無效的使用者"
+#~ msgstr "使用者無效"
#~ msgid "invalid group"
-#~ msgstr "無效的群組"
+#~ msgstr "群組無效"
-#~ msgid "cannot get the login group of a numeric UID"
-#~ msgstr "無法å–å¾— UID 數值所代表的登入群組"
+#~ msgid "invalid spec"
+#~ msgstr "è¦æ ¼ç„¡æ•ˆ"
+
+#~ msgid "unable to display error message"
+#~ msgstr "無法顯示錯誤訊æ¯"
+
+#~ msgid "Packaged by %s (%s)\n"
+#~ msgstr "由 %s (%s) 打包\n"
+
+#~ msgid "Packaged by %s\n"
+#~ msgstr "由 %s 打包\n"
+
+#~ msgid "(C)"
+#~ msgstr "(C)"
-#, fuzzy
#~ msgid ""
-#~ "\n"
-#~ "This is free software. You may redistribute copies of it under the terms "
-#~ "of\n"
-#~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n"
+#~ "License GPLv3+: GNU GPL version 3 or later <%s>.\n"
+#~ "This is free software: you are free to change and redistribute it.\n"
#~ "There is NO WARRANTY, to the extent permitted by law.\n"
-#~ "\n"
#~ msgstr ""
-#~ "本程å¼æ˜¯è‡ªç”±è»Ÿé«”;你å¯ä»¥æ ¹æ“š Free Software Foundation 所公佈的 GNU\n"
-#~ "General Public License 第二版或(自由é¸æ“‡)較新的版本中的æ¢æ¬¾åŽ»é‡æ–°\n"
-#~ "散佈åŠ/或修改本軟體。\n"
+#~ "GPLv3+ 授權:GNU GPL 第三版或更新版本 <%s>。\n"
+#~ "此為自由軟體:您能自由變更åŠé‡æ•£ä½ˆã€‚\n"
+#~ "在法律所å…許的範åœä¹‹å…§ã€Œæ²’有任何ä¿è­‰ã€ã€‚\n"
#~ "\n"
#~ msgid "Written by %s.\n"
@@ -452,51 +752,51 @@ msgstr "記憶體耗盡"
#~ msgstr "由 %s 和 %s 編寫。\n"
#~ msgid "Written by %s, %s, and %s.\n"
-#~ msgstr "由 %s, %s 和 %s 編寫。\n"
+#~ msgstr "ç”± %sã€%s å’Œ %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s\n"
+#~ "ç”± %sã€%sã€%s\n"
#~ "和 %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s,\n"
+#~ "ç”± %sã€%sã€%sã€\n"
#~ "%s 和 %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s,\n"
-#~ "%s, %s 和 %s 編寫。\n"
+#~ "ç”± %sã€%sã€%sã€\n"
+#~ "%sã€%s å’Œ %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s, %s,\n"
-#~ "%s, %s 和 %s 編寫。\n"
+#~ "ç”± %sã€%sã€%sã€%sã€\n"
+#~ "%sã€%s å’Œ %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s, %s,\n"
-#~ "%s, %s, %s 和 %s 編寫。\n"
+#~ "ç”± %sã€%sã€%sã€%sã€\n"
+#~ "%sã€%sã€%s å’Œ %s 編寫。\n"
#~ msgid ""
#~ "Written by %s, %s, %s,\n"
#~ "%s, %s, %s, %s,\n"
#~ "%s, and %s.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s, %s,\n"
-#~ "%s, %s, %s, %s\n"
+#~ "ç”± %sã€%sã€%sã€%sã€\n"
+#~ "%sã€%sã€%sã€%s\n"
#~ "和 %s 編寫。\n"
#~ msgid ""
@@ -504,15 +804,117 @@ msgstr "記憶體耗盡"
#~ "%s, %s, %s, %s,\n"
#~ "%s, %s, and others.\n"
#~ msgstr ""
-#~ "ç”± %s, %s, %s, %s,\n"
-#~ "%s, %s, %s, %s\n"
-#~ "和 %s 等等編寫。\n"
+#~ "ç”± %sã€%sã€%sã€%sã€\n"
+#~ "%sã€%sã€%sã€%s\n"
+#~ "和 %s 等人編寫。\n"
+
+#~ msgid "Report bugs to: %s\n"
+#~ msgstr "匯報錯誤至:%s\n"
+
+#~ msgid "Report %s bugs to: %s\n"
+#~ msgstr "請將 %s 的臭蟲匯報至:%s\n"
+
+#~ msgid "%s home page: <%s>\n"
+#~ msgstr "%s 首é ï¼š<%s>\n"
+
+#~ msgid "General help using GNU software: <%s>\n"
+#~ msgstr "使用 GNU 軟體的一般說明:<%s>\n"
+
+#~ msgid "_open_osfhandle failed"
+#~ msgstr "_open_osfhandle 失敗"
+
+#~ msgid "cannot restore fd %d: dup2 failed"
+#~ msgstr "無法復原 fd %d:dup2 失敗"
+
+#~ msgid "%s subprocess"
+#~ msgstr "%s å­åŸ·è¡Œç¨‹åº"
+
+#~ msgid "%s subprocess got fatal signal %d"
+#~ msgstr "%s å­åŸ·è¡Œç¨‹åºæ”¶åˆ°åš´é‡éŒ¯èª¤ä¿¡è™Ÿ %d"
+
+#~ msgid "failed to set file descriptor text/binary mode"
+#~ msgstr "無法將檔案æ述符設定æˆæ–‡å­— / 二進ä½æ¨¡å¼"
+
+#~ msgid "stdin"
+#~ msgstr "標準輸入"
+
+#~ msgid "stdout"
+#~ msgstr "標準輸出"
+
+#~ msgid "stderr"
+#~ msgstr "標準錯誤"
+
+#~ msgid "unknown stream"
+#~ msgstr "未知串æµ"
+
+#~ msgid "failed to reopen %s with mode %s"
+#~ msgstr "無法使用 %2$s 模å¼é‡é–‹å•Ÿ %1$s"
#~ msgid "string comparison failed"
-#~ msgstr "字串比較出ç¾éŒ¯èª¤"
+#~ msgstr "比較字串失敗"
#~ msgid "Set LC_ALL='C' to work around the problem."
-#~ msgstr "請設定 LC_ALL='C' é¿å…å•é¡Œå‡ºç¾ã€‚"
+#~ msgstr "請設定 LC_ALL='C' é¿å…æ­¤å•é¡Œç™¼ç”Ÿã€‚"
#~ msgid "The strings compared were %s and %s."
-#~ msgstr "è¦æ¯”較的字串為%såŠ%s。"
+#~ msgstr "è¦æ¯”較的字串為 %s å’Œ %s。"
+
+#~ msgid "cannot perform formatted output"
+#~ msgstr "無法執行格å¼åŒ–輸出"
+
+#~ msgid "invalid %s%s argument '%s'"
+#~ msgstr "%s%s åƒæ•¸ã€Œ%sã€ç„¡æ•ˆ"
+
+#~ msgid "invalid suffix in %s%s argument '%s'"
+#~ msgstr "%s%s åƒæ•¸ã€Œ%sã€æœ‰ç„¡æ•ˆå¾Œç¶´"
+
+#~ msgid "%s%s argument '%s' too large"
+#~ msgstr "%s%s åƒæ•¸ã€Œ%sã€éŽé•·"
+
+#~ msgid "%s home page: <https://www.gnu.org/software/%s/>\n"
+#~ msgstr "%s 首é ï¼š<https://www.gnu.org/software/%s/>\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s:é¸é …‘--%s’ä¸å¯é…åˆåƒæ•¸ä½¿ç”¨\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s:無法識別的é¸é …‘--%s’\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s:ä¸åˆæ³•çš„é¸é … ─ %c\n"
+
+#~ msgid "%s: option `-W %s' is ambiguous\n"
+#~ msgstr "%s:é¸é …‘-W %s’ä¸æ˜Žç¢º\n"
+
+#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
+#~ msgstr "%s:é¸é …‘-W %s’ä¸å¯é…åˆåƒæ•¸ä½¿ç”¨\n"
+
+#, fuzzy
+#~ msgid "block size"
+#~ msgstr "å€å¡Šç‰¹æ®Šæª”案"
+
+#~ msgid "%s exists but is not a directory"
+#~ msgstr "%s已存在但ä¸æ˜¯ç›®éŒ„"
+
+#~ msgid "cannot change owner and/or group of %s"
+#~ msgstr "無法更改%sçš„æ“有者和/或所屬群組"
+
+#~ msgid "cannot chdir to directory %s"
+#~ msgstr "無法進入%s目錄"
+
+#~ msgid "cannot get the login group of a numeric UID"
+#~ msgstr "無法å–å¾— UID 數值所代表的登入群組"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "This is free software. You may redistribute copies of it under the terms "
+#~ "of\n"
+#~ "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n"
+#~ "There is NO WARRANTY, to the extent permitted by law.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "本程å¼æ˜¯è‡ªç”±è»Ÿé«”;你å¯ä»¥æ ¹æ“š Free Software Foundation 所公佈的 GNU\n"
+#~ "General Public License 第二版或(自由é¸æ“‡)較新的版本中的æ¢æ¬¾åŽ»é‡æ–°\n"
+#~ "散佈åŠ/或修改本軟體。\n"
+#~ "\n"
diff --git a/include/manconfig.h.in b/include/manconfig.h.in
index 5c3ad648..d9605c9b 100644
--- a/include/manconfig.h.in
+++ b/include/manconfig.h.in
@@ -33,6 +33,8 @@
#ifndef MANCONFIG_H
#define MANCONFIG_H
+#include <stdbool.h>
+
#include "xvasprintf.h"
/* STD_SECTIONS must contain all of your man hierarchy subdirectories. The
@@ -75,10 +77,6 @@
/* #define FAVOUR_STRAYCATS */
-/* The maximum number of manual page hierarchies expected in the manpath.
- Also the maximum amount of non-comment lines in the config file. */
-#define MAXDIRS 128
-
/* CATMODE is the mode of the formatted cat pages that we create. The man-db
package can be run in 4 main modes, 3 of which are relatively secure and
allow the cats to be non world writable. The `wide open' mode requires
@@ -340,7 +338,7 @@ extern struct compression comp_list[];
extern char *create_tempdir (const char *template)
ATTRIBUTE_WARN_UNUSED_RESULT;
-extern int debug_level; /* shows whether -d issued */
+extern bool debug_level; /* shows whether -d issued */
extern void init_debug (void);
extern void debug (const char *message, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
extern void debug_error (const char *message, ...)
diff --git a/init/Makefile.in b/init/Makefile.in
index 46210e6f..c37ff83c 100644
--- a/init/Makefile.in
+++ b/init/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/init/systemd/Makefile.in b/init/systemd/Makefile.in
index 5d6a4f6e..4142e77b 100644
--- a/init/systemd/Makefile.in
+++ b/init/systemd/Makefile.in
@@ -99,6 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -121,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -165,7 +166,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/init/systemd/man-db.service.in b/init/systemd/man-db.service.in
index 25be57d9..b970913a 100644
--- a/init/systemd/man-db.service.in
+++ b/init/systemd/man-db.service.in
@@ -10,7 +10,7 @@ ExecStart=+/usr/bin/install -d -o @cache_top_owner@ -g @cache_top_owner@ -m 0755
# Expunge old catman pages which have not been read in a week.
ExecStart=/usr/bin/find /var/cache/man -type f -name *.gz -atime +6 -delete
# Regenerate man database.
-ExecStart=@bindir@/mandb
+ExecStart=@bindir@/mandb --quiet
User=@cache_top_owner@
Nice=19
IOSchedulingClass=idle
diff --git a/lib/Makefile.am b/lib/Makefile.am
index ba5684f7..30f48f5d 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -41,12 +41,10 @@ libman_la_SOURCES = \
decompress.h \
encodings.c \
encodings.h \
- hashtable.c \
- hashtable.h \
+ glcontainers.c \
+ glcontainers.h \
linelength.c \
linelength.h \
- lower.c \
- lower.h \
orderfiles.c \
orderfiles.h \
pathsearch.c \
@@ -59,8 +57,6 @@ libman_la_SOURCES = \
util.c \
wordfnmatch.c \
wordfnmatch.h \
- xchown.c \
- xchown.h \
xregcomp.c \
xregcomp.h
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 01874400..4d344d6c 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -99,6 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -121,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -165,7 +166,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
@@ -300,13 +301,11 @@ libman_la_DEPENDENCIES = ../gl/lib/libgnu.la $(LTLIBOBJS) \
$(am__DEPENDENCIES_1)
am_libman_la_OBJECTS = libman_la-appendstr.lo libman_la-cleanup.lo \
libman_la-debug.lo libman_la-decompress.lo \
- libman_la-encodings.lo libman_la-hashtable.lo \
- libman_la-linelength.lo libman_la-lower.lo \
- libman_la-orderfiles.lo libman_la-pathsearch.lo \
- libman_la-sandbox.lo libman_la-security.lo \
- libman_la-tempfile.lo libman_la-util.lo \
- libman_la-wordfnmatch.lo libman_la-xchown.lo \
- libman_la-xregcomp.lo
+ libman_la-encodings.lo libman_la-glcontainers.lo \
+ libman_la-linelength.lo libman_la-orderfiles.lo \
+ libman_la-pathsearch.lo libman_la-sandbox.lo \
+ libman_la-security.lo libman_la-tempfile.lo libman_la-util.lo \
+ libman_la-wordfnmatch.lo libman_la-xregcomp.lo
libman_la_OBJECTS = $(am_libman_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -335,9 +334,8 @@ am__depfiles_remade = ./$(DEPDIR)/libman_la-appendstr.Plo \
./$(DEPDIR)/libman_la-debug.Plo \
./$(DEPDIR)/libman_la-decompress.Plo \
./$(DEPDIR)/libman_la-encodings.Plo \
- ./$(DEPDIR)/libman_la-hashtable.Plo \
+ ./$(DEPDIR)/libman_la-glcontainers.Plo \
./$(DEPDIR)/libman_la-linelength.Plo \
- ./$(DEPDIR)/libman_la-lower.Plo \
./$(DEPDIR)/libman_la-orderfiles.Plo \
./$(DEPDIR)/libman_la-pathsearch.Plo \
./$(DEPDIR)/libman_la-sandbox.Plo \
@@ -345,7 +343,6 @@ am__depfiles_remade = ./$(DEPDIR)/libman_la-appendstr.Plo \
./$(DEPDIR)/libman_la-tempfile.Plo \
./$(DEPDIR)/libman_la-util.Plo \
./$(DEPDIR)/libman_la-wordfnmatch.Plo \
- ./$(DEPDIR)/libman_la-xchown.Plo \
./$(DEPDIR)/libman_la-xregcomp.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -1481,12 +1478,10 @@ libman_la_SOURCES = \
decompress.h \
encodings.c \
encodings.h \
- hashtable.c \
- hashtable.h \
+ glcontainers.c \
+ glcontainers.h \
linelength.c \
linelength.h \
- lower.c \
- lower.h \
orderfiles.c \
orderfiles.h \
pathsearch.c \
@@ -1499,8 +1494,6 @@ libman_la_SOURCES = \
util.c \
wordfnmatch.c \
wordfnmatch.h \
- xchown.c \
- xchown.h \
xregcomp.c \
xregcomp.h
@@ -1596,9 +1589,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-debug.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-decompress.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-encodings.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-hashtable.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-glcontainers.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-linelength.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-lower.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-orderfiles.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-pathsearch.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-sandbox.Plo@am__quote@ # am--include-marker
@@ -1606,7 +1598,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-tempfile.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-util.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-wordfnmatch.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-xchown.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libman_la-xregcomp.Plo@am__quote@ # am--include-marker
$(am__depfiles_remade):
@@ -1671,12 +1662,12 @@ libman_la-encodings.lo: encodings.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-encodings.lo `test -f 'encodings.c' || echo '$(srcdir)/'`encodings.c
-libman_la-hashtable.lo: hashtable.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-hashtable.lo -MD -MP -MF $(DEPDIR)/libman_la-hashtable.Tpo -c -o libman_la-hashtable.lo `test -f 'hashtable.c' || echo '$(srcdir)/'`hashtable.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-hashtable.Tpo $(DEPDIR)/libman_la-hashtable.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hashtable.c' object='libman_la-hashtable.lo' libtool=yes @AMDEPBACKSLASH@
+libman_la-glcontainers.lo: glcontainers.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-glcontainers.lo -MD -MP -MF $(DEPDIR)/libman_la-glcontainers.Tpo -c -o libman_la-glcontainers.lo `test -f 'glcontainers.c' || echo '$(srcdir)/'`glcontainers.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-glcontainers.Tpo $(DEPDIR)/libman_la-glcontainers.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='glcontainers.c' object='libman_la-glcontainers.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-hashtable.lo `test -f 'hashtable.c' || echo '$(srcdir)/'`hashtable.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-glcontainers.lo `test -f 'glcontainers.c' || echo '$(srcdir)/'`glcontainers.c
libman_la-linelength.lo: linelength.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-linelength.lo -MD -MP -MF $(DEPDIR)/libman_la-linelength.Tpo -c -o libman_la-linelength.lo `test -f 'linelength.c' || echo '$(srcdir)/'`linelength.c
@@ -1685,13 +1676,6 @@ libman_la-linelength.lo: linelength.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-linelength.lo `test -f 'linelength.c' || echo '$(srcdir)/'`linelength.c
-libman_la-lower.lo: lower.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-lower.lo -MD -MP -MF $(DEPDIR)/libman_la-lower.Tpo -c -o libman_la-lower.lo `test -f 'lower.c' || echo '$(srcdir)/'`lower.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-lower.Tpo $(DEPDIR)/libman_la-lower.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lower.c' object='libman_la-lower.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-lower.lo `test -f 'lower.c' || echo '$(srcdir)/'`lower.c
-
libman_la-orderfiles.lo: orderfiles.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-orderfiles.lo -MD -MP -MF $(DEPDIR)/libman_la-orderfiles.Tpo -c -o libman_la-orderfiles.lo `test -f 'orderfiles.c' || echo '$(srcdir)/'`orderfiles.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-orderfiles.Tpo $(DEPDIR)/libman_la-orderfiles.Plo
@@ -1741,13 +1725,6 @@ libman_la-wordfnmatch.lo: wordfnmatch.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-wordfnmatch.lo `test -f 'wordfnmatch.c' || echo '$(srcdir)/'`wordfnmatch.c
-libman_la-xchown.lo: xchown.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-xchown.lo -MD -MP -MF $(DEPDIR)/libman_la-xchown.Tpo -c -o libman_la-xchown.lo `test -f 'xchown.c' || echo '$(srcdir)/'`xchown.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-xchown.Tpo $(DEPDIR)/libman_la-xchown.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xchown.c' object='libman_la-xchown.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libman_la-xchown.lo `test -f 'xchown.c' || echo '$(srcdir)/'`xchown.c
-
libman_la-xregcomp.lo: xregcomp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libman_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libman_la-xregcomp.lo -MD -MP -MF $(DEPDIR)/libman_la-xregcomp.Tpo -c -o libman_la-xregcomp.lo `test -f 'xregcomp.c' || echo '$(srcdir)/'`xregcomp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libman_la-xregcomp.Tpo $(DEPDIR)/libman_la-xregcomp.Plo
@@ -1894,9 +1871,8 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/libman_la-debug.Plo
-rm -f ./$(DEPDIR)/libman_la-decompress.Plo
-rm -f ./$(DEPDIR)/libman_la-encodings.Plo
- -rm -f ./$(DEPDIR)/libman_la-hashtable.Plo
+ -rm -f ./$(DEPDIR)/libman_la-glcontainers.Plo
-rm -f ./$(DEPDIR)/libman_la-linelength.Plo
- -rm -f ./$(DEPDIR)/libman_la-lower.Plo
-rm -f ./$(DEPDIR)/libman_la-orderfiles.Plo
-rm -f ./$(DEPDIR)/libman_la-pathsearch.Plo
-rm -f ./$(DEPDIR)/libman_la-sandbox.Plo
@@ -1904,7 +1880,6 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/libman_la-tempfile.Plo
-rm -f ./$(DEPDIR)/libman_la-util.Plo
-rm -f ./$(DEPDIR)/libman_la-wordfnmatch.Plo
- -rm -f ./$(DEPDIR)/libman_la-xchown.Plo
-rm -f ./$(DEPDIR)/libman_la-xregcomp.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
@@ -1956,9 +1931,8 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/libman_la-debug.Plo
-rm -f ./$(DEPDIR)/libman_la-decompress.Plo
-rm -f ./$(DEPDIR)/libman_la-encodings.Plo
- -rm -f ./$(DEPDIR)/libman_la-hashtable.Plo
+ -rm -f ./$(DEPDIR)/libman_la-glcontainers.Plo
-rm -f ./$(DEPDIR)/libman_la-linelength.Plo
- -rm -f ./$(DEPDIR)/libman_la-lower.Plo
-rm -f ./$(DEPDIR)/libman_la-orderfiles.Plo
-rm -f ./$(DEPDIR)/libman_la-pathsearch.Plo
-rm -f ./$(DEPDIR)/libman_la-sandbox.Plo
@@ -1966,7 +1940,6 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/libman_la-tempfile.Plo
-rm -f ./$(DEPDIR)/libman_la-util.Plo
-rm -f ./$(DEPDIR)/libman_la-wordfnmatch.Plo
- -rm -f ./$(DEPDIR)/libman_la-xchown.Plo
-rm -f ./$(DEPDIR)/libman_la-xregcomp.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/lib/README b/lib/README
index ba2c691c..115bb74e 100644
--- a/lib/README
+++ b/lib/README
@@ -10,11 +10,11 @@ cleanup.* author - Markus Armbruster, Colin Watson
debug.c author - Colin Watson
decompress.* author - Colin Watson
encodings.* author - Colin Watson
-hashtable.* author - Wilf., Colin Watson
+glcontainers.* author - Colin Watson
linelength.* author - Martin Schulze, Jon Tombs, Colin Watson
-lower.* author - Wilf., Colin Watson
+orderfiles.* author - Colin Watson
pathsearch.* author - Colin Watson
-pipeline.* author - James Clark, Colin Watson
+sandbox.* author - Colin Watson
security.* author - John W. Eaton, Wilf., Colin Watson
tempfile.c author - Colin Watson
util.c author - John W. Eaton, Wilf., Colin Watson
diff --git a/lib/debug.c b/lib/debug.c
index 1b75e63d..dd5ade86 100644
--- a/lib/debug.c
+++ b/lib/debug.c
@@ -23,6 +23,7 @@
# include "config.h"
#endif
+#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
@@ -31,13 +32,13 @@
#include "manconfig.h"
-int debug_level = 0;
+bool debug_level = false;
void init_debug (void)
{
const char *man_debug = getenv ("MAN_DEBUG");
if (man_debug && STREQ (man_debug, "1"))
- debug_level = 1;
+ debug_level = true;
}
static void vdebug (const char *message, va_list args)
diff --git a/lib/encodings.c b/lib/encodings.c
index ec8fb6bc..ccccdbb1 100644
--- a/lib/encodings.c
+++ b/lib/encodings.c
@@ -25,6 +25,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
@@ -640,27 +641,27 @@ out:
/* Can we take this input encoding and produce this output encoding, perhaps
* with the help of some iconv pipes? */
-static int compatible_encodings (const char *input, const char *output)
+static bool compatible_encodings (const char *input, const char *output)
{
if (STREQ (input, output))
- return 1;
+ return true;
/* If the input is ASCII, recoding should be easy. Try it. */
if (STREQ (input, "ANSI_X3.4-1968"))
- return 1;
+ return true;
/* If the input is UTF-8, it's either a simple recoding of whatever
* we want or else it probably won't work at all no matter what we
* do. We might as well try it for now.
*/
if (STREQ (input, "UTF-8"))
- return 1;
+ return true;
/* If the output is ASCII, this is probably because the caller
* explicitly asked for it, so we have little choice but to try.
*/
if (STREQ (output, "ANSI_X3.4-1968"))
- return 1;
+ return true;
#ifdef MULTIBYTE_GROFF
/* Special case for some CJK UTF-8 locales, which take UTF-8 input
@@ -673,10 +674,10 @@ static int compatible_encodings (const char *input, const char *output)
STREQ (input, "EUC-KR") ||
STREQ (input, "EUC-TW")) &&
STREQ (output, "UTF-8"))
- return 1;
+ return true;
#endif /* MULTIBYTE_GROFF */
- return 0;
+ return false;
}
/* Return the default groff device for the given character set. This may be
@@ -723,16 +724,16 @@ const char *get_default_device (const char *charset_from_locale,
}
/* Is this a known *roff device name? */
-int is_roff_device (const char *device)
+bool is_roff_device (const char *device)
{
const struct device_entry *entry;
for (entry = device_table; entry->roff_device; ++entry) {
if (STREQ (entry->roff_device, device))
- return 1;
+ return true;
}
- return 0;
+ return false;
}
/* Find the input encoding expected by groff, and set the LESSCHARSET
@@ -741,13 +742,13 @@ int is_roff_device (const char *device)
const char *get_roff_encoding (const char *device, const char *source_encoding)
{
const struct device_entry *entry;
- int found = 0;
+ bool found = false;
const char *roff_encoding = NULL;
if (device) {
for (entry = device_table; entry->roff_device; ++entry) {
if (STREQ (entry->roff_device, device)) {
- found = 1;
+ found = true;
roff_encoding = entry->roff_encoding;
break;
}
diff --git a/lib/encodings.h b/lib/encodings.h
index 9967a895..b745dae1 100644
--- a/lib/encodings.h
+++ b/lib/encodings.h
@@ -20,6 +20,8 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdbool.h>
+
const char *get_groff_preconv (void);
char *get_page_encoding (const char *lang);
const char *get_source_encoding (const char *lang);
@@ -28,7 +30,7 @@ const char *get_locale_charset (void);
char *find_charset_locale (const char *charset);
const char *get_default_device (const char *locale_charset,
const char *source_encoding);
-int is_roff_device (const char *device);
+bool is_roff_device (const char *device);
const char *get_roff_encoding (const char *device,
const char *source_encoding);
const char *get_output_encoding (const char *device);
diff --git a/lib/glcontainers.c b/lib/glcontainers.c
new file mode 100644
index 00000000..732cbe42
--- /dev/null
+++ b/lib/glcontainers.c
@@ -0,0 +1,77 @@
+/*
+ * glcontainers.c: common Gnulib container helpers
+ *
+ * Copyright (C) 2019 Colin Watson.
+ *
+ * This file is part of man-db.
+ *
+ * man-db is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * man-db is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with man-db; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "gl_xlist.h"
+#include "gl_xmap.h"
+#include "gl_xset.h"
+#include "hash-pjw-bare.h"
+
+#include "manconfig.h"
+
+#include "glcontainers.h"
+
+bool string_equals (const void *s1, const void *s2)
+{
+ return STREQ ((const char *) s1, (const char *) s2);
+}
+
+size_t string_hash (const void *s)
+{
+ return hash_pjw_bare (s, strlen ((const char *) s));
+}
+
+void plain_free (const void *s)
+{
+ /* gl_list declares the argument as const, but there doesn't seem to
+ * be a good reason for this.
+ */
+ free ((void *) s);
+}
+
+gl_list_t new_string_list (gl_list_implementation_t implementation,
+ bool allow_duplicates)
+{
+ return gl_list_create_empty (implementation, string_equals,
+ string_hash, plain_free,
+ allow_duplicates);
+}
+
+gl_map_t new_string_map (gl_map_implementation_t implementation,
+ gl_mapvalue_dispose_fn vdispose_fn)
+{
+ return gl_map_create_empty (implementation, string_equals, string_hash,
+ plain_free, vdispose_fn);
+}
+
+gl_set_t new_string_set (gl_set_implementation_t implementation)
+{
+ return gl_set_create_empty (implementation, string_equals, string_hash,
+ plain_free);
+}
diff --git a/lib/glcontainers.h b/lib/glcontainers.h
new file mode 100644
index 00000000..acaabd57
--- /dev/null
+++ b/lib/glcontainers.h
@@ -0,0 +1,72 @@
+/*
+ * glcontainers.h: interface to common Gnulib container helpers
+ *
+ * Copyright (C) 2019 Colin Watson.
+ *
+ * This file is part of man-db.
+ *
+ * man-db is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * man-db is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with man-db; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef MAN_GLCONTAINERS_H
+#define MAN_GLCONTAINERS_H
+
+#include <stdbool.h>
+#include <stdlib.h>
+
+#include "gl_list.h"
+#include "gl_map.h"
+#include "gl_set.h"
+
+/* These types are compatible with those required by Gnulib container
+ * initialisation.
+ */
+
+bool string_equals (const void *s1, const void *s2);
+size_t string_hash (const void *s);
+void plain_free (const void *s);
+
+/* Convenience functions. */
+
+gl_list_t new_string_list (gl_list_implementation_t implementation,
+ bool allow_duplicates);
+gl_map_t new_string_map (gl_map_implementation_t implementation,
+ gl_mapvalue_dispose_fn vdispose_fn);
+gl_set_t new_string_set (gl_set_implementation_t implementation);
+
+/* Iterator macros. */
+
+#define GL_LIST_FOREACH_START(list, item) \
+ do { \
+ gl_list_iterator_t list##_iter = gl_list_iterator (list); \
+ while (gl_list_iterator_next (&list##_iter, \
+ (const void **) &item, NULL))
+
+#define GL_LIST_FOREACH_END(list) \
+ gl_list_iterator_free (&list##_iter); \
+ } while (0)
+
+#define GL_MAP_FOREACH_START(map, key, value) \
+ do { \
+ gl_map_iterator_t map##_iter = gl_map_iterator (map); \
+ while (gl_map_iterator_next (&map##_iter, \
+ (const void **) &key, \
+ (const void **) &value))
+
+#define GL_MAP_FOREACH_END(map) \
+ gl_map_iterator_free (&map##_iter); \
+ } while (0)
+
+#endif /* MAN_GLCONTAINERS_H */
diff --git a/lib/hashtable.c b/lib/hashtable.c
deleted file mode 100644
index 85fbb04d..00000000
--- a/lib/hashtable.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * hashtable.c: in core hash table routines.
- *
- * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
- * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 Colin Watson.
- *
- * This file is part of man-db.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * All of these routines except hashtable_free() can be found in K&R II.
- *
- * Sat Aug 20 15:01:02 BST 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
- */
-
-/* which hash function do we want ? */
-/* #define PROLOGUE */
-#define KRII
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <stdlib.h>
-
-#include "manconfig.h"
-#include "hashtable.h"
-
-#if defined(PROLOGUE)
-#define HASHSIZE 2048
-#elif defined(KRII)
-#define HASHSIZE 2001
-#else
-#error hash function not defined
-#endif
-
-/* Return hash value for string. */
-static unsigned int hash (const char *s, size_t len)
-{
- unsigned int hashval = 0;
- size_t i;
-
- for (i = 0; i < len && s[i]; ++i)
-#if defined(KRII)
- hashval = s[i] + 31 * hashval;
- return hashval % HASHSIZE;
-#elif defined(PROLOGUE)
- hashval = (hashval << 1) + s[i];
- return hashval & (HASHSIZE - 1);
-#endif
-}
-
-void null_hashtable_free (void *defn ATTRIBUTE_UNUSED)
-{
-}
-
-/* Create a hashtable. */
-struct hashtable *hashtable_create (hashtable_free_ptr free_defn)
-{
- struct hashtable *ht = XMALLOC (struct hashtable);
- ht->hashtab = XCALLOC (HASHSIZE, struct nlist *);
- ht->unique = 0;
- ht->identical = 0;
- ht->free_defn = free_defn;
- return ht;
-}
-
-/* Return pointer to hash entry structure containing s, or NULL if it
- * doesn't exist.
- */
-struct nlist *hashtable_lookup_structure (const struct hashtable *ht,
- const char *s, size_t len)
-{
- struct nlist *np;
-
- for (np = ht->hashtab[hash (s, len)]; np; np = np->next) {
- if (strncmp (s, np->name, len) == 0)
- return np;
- }
- return NULL;
-}
-
-/* Return pointer to definition of s, or NULL if it doesn't exist. */
-void *hashtable_lookup (const struct hashtable *ht, const char *s, size_t len)
-{
- struct nlist *np = hashtable_lookup_structure (ht, s, len);
- if (np)
- return np->defn;
- else
- return NULL;
-}
-
-/* Return structure containing definition (never NULL). */
-struct nlist *hashtable_install (struct hashtable *ht,
- const char *name, size_t len, void *defn)
-{
- struct nlist *np;
-
- np = hashtable_lookup_structure (ht, name, len);
- if (np) {
- if (np->defn)
- ht->free_defn (np->defn);
- } else {
- unsigned int hashval;
-
- np = XMALLOC (struct nlist);
- np->name = xstrndup (name, len);
- hashval = hash (name, len);
-
- /* record uniqueness if debugging */
- if (debug_level) {
- if (ht->hashtab[hashval])
- ht->identical++;
- else
- ht->unique++;
- }
-
- /* point to last entry with this hash */
- np->next = ht->hashtab[hashval];
-
- /* attach to hashtab array */
- ht->hashtab[hashval] = np;
- }
-
- np->defn = defn;
-
- return np;
-}
-
-/* Remove structure containing name from the hash tree. */
-void hashtable_remove (struct hashtable *ht, const char *name, size_t len)
-{
- struct nlist *np, *prev;
- unsigned int hashval = hash (name, len);
-
- for (np = ht->hashtab[hashval], prev = NULL; np;
- prev = np, np = np->next) {
- if (strncmp (name, np->name, len) == 0) {
- if (prev)
- prev->next = np->next;
- else
- ht->hashtab[hashval] = np->next;
- if (np->defn)
- ht->free_defn (np->defn);
- free (np->name);
- free (np);
- return;
- }
- }
-}
-
-struct hashtable_iter {
- struct nlist **bucket;
- struct nlist *np;
-};
-
-/* Iterate over hash. Do not modify hash while iterating. */
-struct nlist *hashtable_iterate (const struct hashtable *ht,
- struct hashtable_iter **iterp)
-{
- struct hashtable_iter *iter = *iterp;
-
- if (!iter)
- *iterp = iter = XZALLOC (struct hashtable_iter);
-
- if (iter->np && iter->np->next)
- return iter->np = iter->np->next;
-
- if (iter->bucket)
- ++iter->bucket;
- else
- iter->bucket = ht->hashtab;
-
- while (iter->bucket < ht->hashtab + HASHSIZE) {
- if (*iter->bucket)
- return iter->np = *iter->bucket;
- ++iter->bucket;
- }
-
- free (iter);
- *iterp = NULL;
- return NULL;
-}
-
-/* Free up the hash tree (garbage collection). Also call the free_defn()
- * hook to free up values if necessary.
- */
-void hashtable_free (struct hashtable *ht)
-{
- int i;
-
- if (!ht)
- return;
-
- debug ("hashtable_free: %d entries, %d (%d%%) unique\n",
- ht->unique + ht->identical,
- ht->unique,
- ht->unique ? (ht->unique * 100) / (ht->unique + ht->identical)
- : 0);
-
- for (i = 0; i < HASHSIZE; i++) {
- struct nlist *np;
-
- np = ht->hashtab[i];
- while (np) {
- struct nlist *next;
-
- if (np->defn)
- ht->free_defn (np->defn);
- free (np->name);
- next = np->next;
- free (np);
- np = next;
- }
- }
-
- free (ht->hashtab);
- free (ht);
-}
diff --git a/lib/hashtable.h b/lib/hashtable.h
deleted file mode 100644
index 3924518c..00000000
--- a/lib/hashtable.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * hashtable.h: contains struct nlist
- *
- * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
- * Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Colin Watson.
- *
- * This file is part of man-db.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Sat Aug 20 15:01:02 BST 1994 Wilf. (G.Wilford@ee.surrey.ac.uk)
- */
-
-#ifndef _HASHTABLE_H
-#define _HASHTABLE_H
-
-typedef void (*hashtable_free_ptr) (void *defn);
-
-struct hashtable {
- struct nlist **hashtab; /* the storage array */
- int unique; /* unique hash values */
- int identical; /* identical hash values */
- hashtable_free_ptr free_defn; /* function to free a hash entry */
-};
-
-struct nlist {
- struct nlist *next; /* next in the chain */
- char *name; /* the _name_ */
- void *defn; /* the _definition_ */
-};
-
-struct hashtable_iter;
-
-extern void null_hashtable_free (void *defn);
-
-extern struct hashtable *hashtable_create (hashtable_free_ptr free_defn);
-extern struct nlist *hashtable_lookup_structure (const struct hashtable *ht,
- const char *s, size_t len);
-extern void *hashtable_lookup (const struct hashtable *ht,
- const char *s, size_t len);
-extern struct nlist *hashtable_install (struct hashtable *ht,
- const char *name, size_t len,
- void *defn);
-extern struct nlist *hashtable_iterate (const struct hashtable *ht,
- struct hashtable_iter **iterp);
-extern void hashtable_remove (struct hashtable *ht, const char *s, size_t len);
-extern void hashtable_free (struct hashtable *ht);
-
-#endif /* _HASHTABLE_H */
diff --git a/lib/lower.c b/lib/lower.c
deleted file mode 100644
index e620fb7c..00000000
--- a/lib/lower.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * lower.c: return lower-case copy of a string
- *
- * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
- * Copyright (C) 2003, 2008 Colin Watson.
- *
- * This file is part of man-db.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <string.h>
-#include <ctype.h>
-
-#include "manconfig.h"
-
-#include "lower.h"
-
-/* return lowered version of s */
-char *lower (const char *s)
-{
- char *low, *p;
-
- p = low = xmalloc (strlen (s) + 1);
-
- while (*s)
- *p++ = CTYPE (tolower, *s++);
-
- *p = *s;
- return low;
-}
diff --git a/lib/lower.h b/lib/lower.h
deleted file mode 100644
index 571de335..00000000
--- a/lib/lower.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * lower.h: interface to return lower-case copy of a string
- *
- * Copyright (C) 1994, 1995 Graeme W. Wilford. (Wilf.)
- * Copyright (C) 2003, 2008 Colin Watson.
- *
- * This file is part of man-db.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-char *lower (const char *s);
diff --git a/lib/orderfiles.c b/lib/orderfiles.c
index d67f4d8f..b1a17908 100644
--- a/lib/orderfiles.c
+++ b/lib/orderfiles.c
@@ -44,21 +44,24 @@
#include <string.h>
#include <unistd.h>
-#include "manconfig.h"
+#include "gl_hash_map.h"
+#include "gl_rbtree_list.h"
+#include "gl_xlist.h"
+#include "gl_xmap.h"
-#include "hashtable.h"
+#include "manconfig.h"
-struct hashtable *physical_offsets = NULL;
+#include "glcontainers.h"
#if defined(HAVE_LINUX_FIEMAP_H)
+gl_map_t physical_offsets = NULL;
+
int compare_physical_offsets (const void *a, const void *b)
{
- const char *left = *(const char **) a;
- const char *right = *(const char **) b;
- uint64_t *left_offset_p = hashtable_lookup (physical_offsets,
- left, strlen (left));
- uint64_t *right_offset_p = hashtable_lookup (physical_offsets,
- right, strlen (right));
+ const char *left = (const char *) a;
+ const char *right = (const char *) b;
+ const uint64_t *left_offset_p = gl_map_get (physical_offsets, left);
+ const uint64_t *right_offset_p = gl_map_get (physical_offsets, right);
uint64_t left_offset = left_offset_p ? *left_offset_p : UINT64_MAX;
uint64_t right_offset = right_offset_p ? *right_offset_p : UINT64_MAX;
@@ -70,12 +73,13 @@ int compare_physical_offsets (const void *a, const void *b)
return 0;
}
-void order_files (const char *dir, char **basenames, size_t n_basenames)
+void order_files (const char *dir, gl_list_t *basenamesp)
{
+ gl_list_t basenames = *basenamesp, sorted_basenames;
int dir_fd_open_flags;
int dir_fd;
struct statfs fs;
- size_t i;
+ const char *name;
dir_fd_open_flags = O_SEARCH | O_DIRECTORY;
#ifdef O_PATH
@@ -96,15 +100,17 @@ void order_files (const char *dir, char **basenames, size_t n_basenames)
* a small number of contiguous blocks, which seems a reasonable
* assumption for manual pages.
*/
- physical_offsets = hashtable_create (&free);
- for (i = 0; i < n_basenames; ++i) {
+ physical_offsets = gl_map_create_empty (GL_HASH_MAP, string_equals,
+ string_hash, NULL, plain_free);
+ sorted_basenames = new_string_list (GL_RBTREE_LIST, false);
+ GL_LIST_FOREACH_START (basenames, name) {
struct {
struct fiemap fiemap;
struct fiemap_extent extent;
} fm;
int fd;
- fd = openat (dir_fd, basenames[i], O_RDONLY);
+ fd = openat (dir_fd, name, O_RDONLY);
if (fd < 0)
continue;
@@ -117,24 +123,30 @@ void order_files (const char *dir, char **basenames, size_t n_basenames)
if (ioctl (fd, FS_IOC_FIEMAP, (unsigned long) &fm) == 0) {
uint64_t *offset = XMALLOC (uint64_t);
*offset = fm.fiemap.fm_extents[0].fe_physical;
- hashtable_install (physical_offsets, basenames[i],
- strlen (basenames[i]), offset);
+ /* Borrow the key from basenames; since
+ * physical_offsets has a shorter lifetime, we don't
+ * need to duplicate it.
+ */
+ gl_map_put (physical_offsets, name, offset);
}
close (fd);
- }
- qsort (basenames, n_basenames, sizeof *basenames,
- compare_physical_offsets);
- hashtable_free (physical_offsets);
+ gl_sortedlist_add (sorted_basenames, compare_physical_offsets,
+ xstrdup (name));
+ } GL_LIST_FOREACH_END (basenames);
+ gl_map_free (physical_offsets);
physical_offsets = NULL;
close (dir_fd);
+ gl_list_free (basenames);
+ *basenamesp = sorted_basenames;
}
#elif defined(HAVE_POSIX_FADVISE)
-void order_files (const char *dir, char **basenames, size_t n_basenames)
+void order_files (const char *dir, gl_list_t *basenamesp)
{
+ gl_list_t basenames = *basenamesp;
int dir_fd_open_flags;
int dir_fd;
- size_t i;
+ const char *name;
dir_fd_open_flags = O_SEARCH | O_DIRECTORY;
#ifdef O_PATH
@@ -147,18 +159,18 @@ void order_files (const char *dir, char **basenames, size_t n_basenames)
/* While we can't actually order the files, we can at least ask the
* kernel to preload them.
*/
- for (i = 0; i < n_basenames; ++i) {
- int fd = openat (dir_fd, basenames[i], O_RDONLY | O_NONBLOCK);
+ GL_LIST_FOREACH_START (basenames, name) {
+ int fd = openat (dir_fd, name, O_RDONLY | O_NONBLOCK);
if (fd >= 0) {
posix_fadvise (fd, 0, 0, POSIX_FADV_WILLNEED);
close (fd);
}
- }
+ } GL_LIST_FOREACH_END (basenames);
close (dir_fd);
}
#else
-void order_files (const char *dir, char **basenames, size_t n_basenames)
+void order_files (const char *dir, gl_list_t *basenamesp)
{
}
#endif
diff --git a/lib/orderfiles.h b/lib/orderfiles.h
index b4e66897..dae41cca 100644
--- a/lib/orderfiles.h
+++ b/lib/orderfiles.h
@@ -20,4 +20,6 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-void order_files (const char *dir, char **basenames, size_t n_basenames);
+#include "gl_list.h"
+
+void order_files (const char *dir, gl_list_t *basenamesp);
diff --git a/lib/pathsearch.c b/lib/pathsearch.c
index 402f7d1a..c733c3a7 100644
--- a/lib/pathsearch.c
+++ b/lib/pathsearch.c
@@ -24,6 +24,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
@@ -37,26 +38,26 @@
#include "manconfig.h"
#include "pathsearch.h"
-static int pathsearch (const char *name, const mode_t bits)
+static bool pathsearch (const char *name, const mode_t bits)
{
char *cwd = NULL;
char *path = getenv ("PATH");
char *pathtok;
const char *element;
struct stat st;
- int ret = 0;
+ bool ret = false;
if (!path)
/* Eh? Oh well. */
- return 0;
+ return false;
if (strchr (name, '/')) {
/* Qualified name; look directly. */
if (stat (name, &st) == -1)
- return 0;
+ return false;
if (S_ISREG (st.st_mode) && (st.st_mode & bits))
- return 1;
- return 0;
+ return true;
+ return false;
}
pathtok = path = xstrdup (path);
@@ -81,7 +82,7 @@ static int pathsearch (const char *name, const mode_t bits)
free (filename);
if (S_ISREG (st.st_mode) && (st.st_mode & bits)) {
- ret = 1;
+ ret = true;
break;
}
}
@@ -91,22 +92,22 @@ static int pathsearch (const char *name, const mode_t bits)
return ret;
}
-int pathsearch_executable (const char *name)
+bool pathsearch_executable (const char *name)
{
return pathsearch (name, 0111);
}
-int directory_on_path (const char *dir)
+bool directory_on_path (const char *dir)
{
char *cwd = NULL;
char *path = getenv ("PATH");
char *pathtok;
const char *element;
- int ret = 0;
+ bool ret = false;
if (!path)
/* Eh? Oh well. */
- return 0;
+ return false;
pathtok = path = xstrdup (path);
@@ -119,7 +120,7 @@ int directory_on_path (const char *dir)
}
if (STREQ (element, dir)) {
- ret = 1;
+ ret = true;
break;
}
}
diff --git a/lib/pathsearch.h b/lib/pathsearch.h
index 970fbeef..d9b024d1 100644
--- a/lib/pathsearch.h
+++ b/lib/pathsearch.h
@@ -23,12 +23,14 @@
#ifndef PATHSEARCH_H
#define PATHSEARCH_H
-/* Return non-zero if NAME is found as an executable regular file on the
- * $PATH.
+#include <stdbool.h>
+
+/* Return true if NAME is found as an executable regular file on the $PATH,
+ * otherwise false.
*/
-int pathsearch_executable (const char *name);
+bool pathsearch_executable (const char *name);
-/* Return non-zero if DIR matches an entry on the $PATH. */
-int directory_on_path (const char *dir);
+/* Return true if DIR matches an entry on the $PATH, otherwise false. */
+bool directory_on_path (const char *dir);
#endif /* PATHSEARCH_H */
diff --git a/lib/sandbox.c b/lib/sandbox.c
index c097482b..22924435 100644
--- a/lib/sandbox.c
+++ b/lib/sandbox.c
@@ -43,6 +43,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
@@ -86,14 +87,14 @@ static void gripe_seccomp_filter_unavailable (void)
"CONFIG_SECCOMP_FILTER\n");
}
-static int search_ld_preload (const char *needle)
+static bool search_ld_preload (const char *needle)
{
const char *ld_preload_env;
static char *ld_preload_file = NULL;
ld_preload_env = getenv ("LD_PRELOAD");
if (ld_preload_env && strstr (ld_preload_env, needle) != NULL)
- return 1;
+ return true;
if (!ld_preload_file) {
int fd;
@@ -118,9 +119,9 @@ static int search_ld_preload (const char *needle)
* for you.
*/
if (strstr (ld_preload_file, needle) != NULL)
- return 1;
+ return true;
- return 0;
+ return false;
}
/* Can we load a seccomp filter into this process?
@@ -128,20 +129,20 @@ static int search_ld_preload (const char *needle)
* This guard allows us to call sandbox_load in code paths that may
* conditionally do so again.
*/
-static int can_load_seccomp (void)
+static bool can_load_seccomp (void)
{
const char *man_disable_seccomp;
int seccomp_status;
if (seccomp_filter_unavailable) {
gripe_seccomp_filter_unavailable ();
- return 0;
+ return false;
}
man_disable_seccomp = getenv ("MAN_DISABLE_SECCOMP");
if (man_disable_seccomp && *man_disable_seccomp) {
debug ("seccomp filter disabled by user request\n");
- return 0;
+ return false;
}
/* Valgrind causes the child process to make some system calls we
@@ -158,13 +159,13 @@ static int can_load_seccomp (void)
if (search_ld_preload ("/vgpreload")) {
debug ("seccomp filter disabled while running under "
"Valgrind\n");
- return 0;
+ return false;
}
seccomp_status = prctl (PR_GET_SECCOMP);
if (seccomp_status == 0)
- return 1;
+ return true;
if (seccomp_status == -1) {
if (errno == EINVAL)
@@ -177,7 +178,7 @@ static int can_load_seccomp (void)
else
debug ("unknown return value from PR_GET_SECCOMP: %d\n",
seccomp_status);
- return 0;
+ return false;
}
#endif /* HAVE_LIBSECCOMP */
@@ -264,7 +265,7 @@ static scmp_filter_ctx make_seccomp_filter (int permissive)
* Since I currently know of no library with suitable syscall lists,
* the syscall lists here are taken from
* systemd:src/shared/seccomp-util.c, last updated from commit
- * 67eb5b380a7b7eed82f658190bff4ca2d83e9abe (2017-11-30).
+ * bca5a0eaccc849a669b4279e4bfcc6507083a07b (2019-08-01).
*/
/* systemd: SystemCallFilter=@default */
@@ -304,6 +305,7 @@ static scmp_filter_ctx make_seccomp_filter (int permissive)
SC_ALLOW ("pause");
SC_ALLOW ("prlimit64");
SC_ALLOW ("restart_syscall");
+ SC_ALLOW ("rseq");
SC_ALLOW ("rt_sigreturn");
SC_ALLOW ("sched_yield");
SC_ALLOW ("set_robust_list");
@@ -572,8 +574,8 @@ man_sandbox *sandbox_init (void)
return sandbox;
}
-static void _sandbox_load (man_sandbox *sandbox, int permissive) {
#ifdef HAVE_LIBSECCOMP
+static void _sandbox_load (man_sandbox *sandbox, int permissive) {
if (can_load_seccomp ()) {
scmp_filter_ctx ctx;
@@ -603,8 +605,13 @@ static void _sandbox_load (man_sandbox *sandbox, int permissive) {
"can't load seccomp filter");
}
}
-#endif /* HAVE_LIBSECCOMP */
}
+#else /* !HAVE_LIBSECCOMP */
+static void _sandbox_load (man_sandbox *sandbox ATTRIBUTE_UNUSED,
+ int permissive ATTRIBUTE_UNUSED)
+{
+}
+#endif /* HAVE_LIBSECCOMP */
/* Enter a sandbox for processing untrusted data. */
void sandbox_load (void *data)
@@ -630,6 +637,7 @@ void sandbox_free (void *data) {
#ifdef HAVE_LIBSECCOMP
seccomp_release (sandbox->ctx);
+ seccomp_release (sandbox->permissive_ctx);
#endif /* HAVE_LIBSECCOMP */
free (sandbox);
diff --git a/lib/security.c b/lib/security.c
index e739d503..7d66eaf4 100644
--- a/lib/security.c
+++ b/lib/security.c
@@ -27,6 +27,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -94,12 +95,12 @@ void init_security (void)
#endif /* MAN_OWNER */
}
-int running_setuid (void)
+bool running_setuid (void)
{
#ifdef MAN_OWNER
return ruid != euid;
#else /* !MAN_OWNER */
- return 0;
+ return false;
#endif
}
diff --git a/lib/security.h b/lib/security.h
index 63ef5332..fdfadc4d 100644
--- a/lib/security.h
+++ b/lib/security.h
@@ -22,6 +22,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdbool.h>
#include <pwd.h>
/* security.c */
@@ -29,7 +30,7 @@ extern void drop_effective_privs (void);
extern void regain_effective_privs (void);
extern void drop_privs (void *data);
extern void init_security (void);
-extern int running_setuid (void);
+extern bool running_setuid (void);
#ifdef MAN_OWNER
extern struct passwd *get_man_owner (void);
#endif /* MAN_OWNER */
diff --git a/lib/wordfnmatch.c b/lib/wordfnmatch.c
index 0ec26500..613035b2 100644
--- a/lib/wordfnmatch.c
+++ b/lib/wordfnmatch.c
@@ -24,6 +24,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdlib.h>
#include <ctype.h>
@@ -31,19 +32,19 @@
#include "manconfig.h"
-#include "lower.h"
#include "wordfnmatch.h"
/* TODO: How on earth do we allow multiple-word matches without
* reimplementing fnmatch()?
*/
-int word_fnmatch (const char *lowpattern, const char *string)
+bool word_fnmatch (const char *pattern, const char *string)
{
- char *lowstring = lower (string);
- char *begin = lowstring, *p;
+ char *dupstring = xstrdup (string);
+ const char *begin = dupstring;
+ char *p;
- for (p = lowstring; *p; p++) {
- if (CTYPE (islower, *p) || *p == '_')
+ for (p = dupstring; *p; p++) {
+ if (CTYPE (isalpha, *p) || *p == '_')
continue;
/* Check for multiple non-word characters in a row. */
@@ -51,14 +52,14 @@ int word_fnmatch (const char *lowpattern, const char *string)
begin++;
else {
*p = '\0';
- if (fnmatch (lowpattern, begin, 0) == 0) {
- free (lowstring);
- return 1;
+ if (fnmatch (pattern, begin, FNM_CASEFOLD) == 0) {
+ free (dupstring);
+ return true;
}
begin = p + 1;
}
}
- free (lowstring);
- return 0;
+ free (dupstring);
+ return false;
}
diff --git a/lib/wordfnmatch.h b/lib/wordfnmatch.h
index 0fc29f0c..82e7cf7b 100644
--- a/lib/wordfnmatch.h
+++ b/lib/wordfnmatch.h
@@ -20,4 +20,6 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-int word_fnmatch (const char *lowpattern, const char *string);
+#include <stdbool.h>
+
+bool word_fnmatch (const char *lowpattern, const char *string);
diff --git a/lib/xchown.c b/lib/xchown.c
deleted file mode 100644
index 7f284faa..00000000
--- a/lib/xchown.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * xchown.c: chown replacement function
- *
- * Copyright (C) 2016 Mihail Konev.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- * */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <unistd.h>
-
-#include "gettext.h"
-#define _(String) gettext (String)
-
-#include "error.h"
-#include "manconfig.h"
-
-void xchown (const char *path, uid_t owner, gid_t group)
-{
- int rc;
- rc = chown (path, owner, group);
- if (rc)
- error (FATAL, 0, _("can't chown %s"), path);
-}
-
-#ifdef HAVE_LCHOWN
-void xlchown (const char *path, uid_t owner, gid_t group)
-{
- int rc;
- rc = lchown (path, owner, group);
- if (rc)
- error (FATAL, 0, _("can't chown %s"), path);
-}
-#endif
diff --git a/lib/xchown.h b/lib/xchown.h
deleted file mode 100644
index 8a035b2d..00000000
--- a/lib/xchown.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * xchown.h: chown replacement function
- *
- * Copyright (C) 2016 Mihail Konev.
- *
- * man-db is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * man-db is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with man-db; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- * */
-
-#ifndef _XCHOWN_H
-#define _XCHOWN_H
-
-void xchown (const char *path, uid_t owner, gid_t group);
-#ifdef HAVE_LCHOWN
-void xlchown (const char *path, uid_t owner, gid_t group);
-#endif /* HAVE_LCHOWN */
-
-#endif /* _XCHOWN_H */
diff --git a/libdb/Makefile.in b/libdb/Makefile.in
index 6a43a773..afc0b5ea 100644
--- a/libdb/Makefile.in
+++ b/libdb/Makefile.in
@@ -99,6 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -121,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -165,7 +166,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/libdb/db_btree.c b/libdb/db_btree.c
index 4469bf61..b4e426cc 100644
--- a/libdb/db_btree.c
+++ b/libdb/db_btree.c
@@ -32,29 +32,27 @@
#include <stdio.h>
#include <errno.h>
#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
#include <sys/file.h> /* for flock() */
#include <sys/types.h> /* for open() */
#include <sys/stat.h>
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
-#include <unistd.h>
-
+#include "gl_hash_set.h"
+#include "gl_xset.h"
#include "stat-time.h"
#include "timespec.h"
#include "manconfig.h"
#include "error.h"
-#include "hashtable.h"
+#include "glcontainers.h"
#include "mydbm.h"
#include "db_storage.h"
-struct hashtable *loop_check_hash;
+gl_set_t loop_check;
/* the Berkeley database libraries do nothing to arbitrate between concurrent
database accesses, so we do a simple flock(). If the db is opened in
@@ -182,26 +180,27 @@ int btree_exists (DB *db, datum key)
static datum btree_findkey (DB *db, u_int flags)
{
datum key, data;
+ char *loop_check_key;
memset (&key, 0, sizeof key);
memset (&data, 0, sizeof data);
if (flags == R_FIRST) {
- if (loop_check_hash) {
- hashtable_free (loop_check_hash);
- loop_check_hash = NULL;
+ if (loop_check) {
+ gl_set_free (loop_check);
+ loop_check = NULL;
}
}
- if (!loop_check_hash)
- loop_check_hash = hashtable_create (&free);
+ if (!loop_check)
+ loop_check = new_string_set (GL_HASH_SET);
if (((db->seq) (db, (DBT *) &key, (DBT *) &data, flags))) {
memset (&key, 0, sizeof key);
return key;
}
- if (hashtable_lookup (loop_check_hash,
- MYDBM_DPTR (key), MYDBM_DSIZE (key))) {
+ loop_check_key = xstrndup (MYDBM_DPTR (key), MYDBM_DSIZE (key));
+ if (gl_set_search (loop_check, loop_check_key)) {
/* We've seen this key already, which is broken. Return NULL
* so the caller doesn't go round in circles.
*/
@@ -209,11 +208,11 @@ static datum btree_findkey (DB *db, u_int flags)
"Attempting to recover ...\n",
(int) MYDBM_DSIZE (key), MYDBM_DPTR (key));
memset (&key, 0, sizeof key);
+ free (loop_check_key);
return key;
}
- hashtable_install (loop_check_hash,
- MYDBM_DPTR (key), MYDBM_DSIZE (key), NULL);
+ gl_set_add (loop_check, loop_check_key);
return copy_datum (key);
}
diff --git a/libdb/db_delete.c b/libdb/db_delete.c
index 4ac6401a..d1e99385 100644
--- a/libdb/db_delete.c
+++ b/libdb/db_delete.c
@@ -30,12 +30,15 @@
#include <stdlib.h>
#include <unistd.h>
+#include "error.h"
+#include "gl_list.h"
+
#include "gettext.h"
#define _(String) gettext (String)
#include "manconfig.h"
-#include "error.h"
+#include "glcontainers.h"
#include "mydbm.h"
#include "db_storage.h"
@@ -74,30 +77,29 @@ int dbdelete (MYDBM_FILE dbf, const char *name, struct mandata *info)
MYDBM_DELETE (dbf, key);
MYDBM_FREE_DPTR (cont);
} else { /* 2+ entries */
- char **names, **ext;
+ gl_list_t refs;
+ struct name_ext this_ref, *ref;
+ size_t this_index;
char *multi_content = NULL;
datum multi_key;
- int refs, i, j;
/* Extract all of the extensions associated with
this key */
- refs = list_extensions (MYDBM_DPTR (cont) + 1, &names, &ext);
+ refs = list_extensions (MYDBM_DPTR (cont) + 1);
- for (i = 0; i < refs; ++i)
- if (STREQ (names[i], name) &&
- STREQ (ext[i], info->ext))
- break;
+ this_ref.name = name;
+ this_ref.ext = info->ext;
+ this_index = gl_list_indexof (refs, &this_ref);
- if (i >= refs) {
- free (names);
- free (ext);
+ if (this_index == (size_t) -1) {
+ gl_list_free (refs);
MYDBM_FREE_DPTR (cont);
MYDBM_FREE_DPTR (key);
return NO_ENTRY;
}
- multi_key = make_multi_key (names[i], ext[i]);
+ multi_key = make_multi_key (name, info->ext);
if (!MYDBM_EXISTS (dbf, multi_key)) {
error (0, 0,
_( "multi key %s does not exist"),
@@ -106,14 +108,13 @@ int dbdelete (MYDBM_FILE dbf, const char *name, struct mandata *info)
}
MYDBM_DELETE (dbf, multi_key);
MYDBM_FREE_DPTR (multi_key);
+ gl_list_remove_at (refs, this_index);
- /* refs *may* be 1 if all manual pages with this name
- have been deleted. In this case, we'll have to remove
- the key too */
+ /* If all manual pages with this name have been deleted,
+ we'll have to remove the key too. */
- if (refs == 1) {
- free (names);
- free (ext);
+ if (!gl_list_size (refs)) {
+ gl_list_free (refs);
MYDBM_FREE_DPTR (cont);
MYDBM_DELETE (dbf, key);
MYDBM_FREE_DPTR (key);
@@ -121,26 +122,19 @@ int dbdelete (MYDBM_FILE dbf, const char *name, struct mandata *info)
}
/* create our new multi content */
- for (j = 0; j < refs; ++j)
- if (i != j)
- multi_content = appendstr (multi_content,
- "\t", names[j],
- "\t", ext[j],
- (void *) 0);
+ GL_LIST_FOREACH_START (refs, ref)
+ multi_content = appendstr (multi_content,
+ "\t", ref->name,
+ "\t", ref->ext,
+ (void *) 0);
+ GL_LIST_FOREACH_END (refs);
MYDBM_FREE_DPTR (cont);
-
- /* if refs = 2 do something else. Doesn't really matter as
- the gdbm db file does not shrink any after a deletion
- anyway */
-
MYDBM_SET (cont, multi_content);
-
if (MYDBM_REPLACE (dbf, key, cont))
gripe_replace_key (MYDBM_DPTR (key));
- free (names);
- free (ext);
+ gl_list_free (refs);
}
MYDBM_FREE_DPTR (key);
diff --git a/libdb/db_gdbm.c b/libdb/db_gdbm.c
index f3aaa94e..d8fb988d 100644
--- a/libdb/db_gdbm.c
+++ b/libdb/db_gdbm.c
@@ -34,22 +34,22 @@
#include <sys/stat.h>
#include <unistd.h>
+#include "gl_hash_map.h"
+#include "gl_rbtree_list.h"
+#include "gl_xlist.h"
+#include "gl_xmap.h"
+#include "hash-pjw-bare.h"
#include "stat-time.h"
#include "timespec.h"
#include "manconfig.h"
-#include "hashtable.h"
#include "cleanup.h"
+#include "glcontainers.h"
#include "mydbm.h"
-static struct hashtable *parent_sortkey_hash;
-
-struct sortkey {
- datum key;
- struct sortkey *next;
-};
+static gl_map_t parent_keys;
/* setjmp/longjmp handling to defend against _gdbm_fatal exiting under our
* feet. Not thread-safe, but there is no plan for man-db to ever use
@@ -103,129 +103,111 @@ man_gdbm_wrapper man_gdbm_open_wrapper (const char *name, int flags)
return wrap;
}
-static void parent_sortkey_hashtable_free (void *defn)
-{
- /* Automatically free child hashtables on removal. */
- hashtable_free ((struct hashtable *) defn);
-}
-
-static void sortkey_hashtable_free (void *defn)
+static int datum_compare (const void *a, const void *b)
{
- struct sortkey *key = (struct sortkey *) defn;
- MYDBM_FREE_DPTR (key->key);
- free (key);
-}
-
-static int sortkey_compare (const void *a, const void *b)
-{
- const struct sortkey **left = (const struct sortkey **) a;
- const struct sortkey **right = (const struct sortkey **) b;
+ const datum *left = (const datum *) a;
+ const datum *right = (const datum *) b;
int cmp;
size_t minsize;
/* Sentinel NULL elements sort to the end. */
- if (!MYDBM_DPTR ((*left)->key))
+ if (!MYDBM_DPTR (*left))
return 1;
- else if (!MYDBM_DPTR ((*right)->key))
+ else if (!MYDBM_DPTR (*right))
return -1;
- if (MYDBM_DSIZE ((*left)->key) < MYDBM_DSIZE ((*right)->key))
- minsize = MYDBM_DSIZE ((*left)->key);
+ if (MYDBM_DSIZE (*left) < MYDBM_DSIZE (*right))
+ minsize = MYDBM_DSIZE (*left);
else
- minsize = MYDBM_DSIZE ((*right)->key);
- cmp = strncmp (MYDBM_DPTR ((*left)->key), MYDBM_DPTR ((*right)->key),
- minsize);
+ minsize = MYDBM_DSIZE (*right);
+ cmp = strncmp (MYDBM_DPTR (*left), MYDBM_DPTR (*right), minsize);
if (cmp)
return cmp;
- else if (MYDBM_DSIZE ((*left)->key) < MYDBM_DSIZE ((*right)->key))
+ else if (MYDBM_DSIZE (*left) < MYDBM_DSIZE (*right))
return 1;
- else if (MYDBM_DSIZE ((*left)->key) > MYDBM_DSIZE ((*right)->key))
+ else if (MYDBM_DSIZE (*left) > MYDBM_DSIZE (*right))
return -1;
else
return 0;
}
+static bool datum_equals (const void *a, const void *b)
+{
+ return datum_compare (a, b) == 0;
+}
+
+static size_t datum_hash (const void *value)
+{
+ const datum *d = value;
+ return hash_pjw_bare (MYDBM_DPTR (*d), MYDBM_DSIZE (*d));
+}
+
+static void datum_free (const void *value)
+{
+ MYDBM_FREE_DPTR (*(datum *) value);
+}
+
static datum empty_datum = { NULL, 0 };
-/* We keep a hashtable of filenames to sorted lists of keys. Each list is
- * stored both with links from each element to the next and in a hashtable,
- * so that both sequential access and random access are quick. This is
- * necessary for a reasonable ordered implementation of nextkey.
+/* We keep a map of filenames to sorted lists of keys. Each list is stored
+ * using a hash-based implementation that allows lookup by name and
+ * traversal to the next item in O(log n) time, which is necessary for a
+ * reasonable ordered implementation of nextkey.
*/
datum man_gdbm_firstkey (man_gdbm_wrapper wrap)
{
- struct hashtable *sortkey_hash;
- struct sortkey **keys, *firstkey;
- int numkeys = 0, maxkeys = 256;
- int i;
-
- /* Build the raw list of keys and sort it. */
- keys = xnmalloc (maxkeys, sizeof *keys);
- keys[0] = xmalloc (sizeof **keys);
- keys[0]->key = gdbm_firstkey (wrap->file);
- while (MYDBM_DPTR (keys[numkeys]->key)) {
- if (++numkeys >= maxkeys) {
- maxkeys *= 2;
- keys = xnrealloc (keys, maxkeys, sizeof *keys);
- }
- keys[numkeys] = xmalloc (sizeof **keys);
- keys[numkeys]->key =
- gdbm_nextkey (wrap->file, keys[numkeys - 1]->key);
+ gl_list_t keys;
+ datum *key;
+
+ /* Build the raw sorted list of keys. */
+ keys = gl_list_create_empty (GL_RBTREE_LIST, datum_equals, datum_hash,
+ datum_free, false);
+ key = XMALLOC (datum);
+ *key = gdbm_firstkey (wrap->file);
+ while (MYDBM_DPTR (*key)) {
+ datum *next;
+
+ gl_sortedlist_add (keys, datum_compare, key);
+ next = XMALLOC (datum);
+ *next = gdbm_nextkey (wrap->file, *key);
+ key = next;
}
- free (keys[numkeys]);
- keys[numkeys] = NULL; /* simplifies the empty case */
- qsort (keys, numkeys, sizeof *keys, &sortkey_compare);
-
- /* Link the elements together and insert them into a hash. */
- sortkey_hash = hashtable_create (&sortkey_hashtable_free);
- for (i = 0; i < numkeys; ++i) {
- if (i < numkeys - 1)
- keys[i]->next = keys[i + 1];
- else
- keys[i]->next = NULL;
- hashtable_install (sortkey_hash,
- MYDBM_DPTR (keys[i]->key),
- MYDBM_DSIZE (keys[i]->key),
- keys[i]);
- }
- firstkey = keys[0];
- free (keys); /* element memory now owned by hashtable */
-
- if (!parent_sortkey_hash) {
- parent_sortkey_hash = hashtable_create
- (&parent_sortkey_hashtable_free);
- push_cleanup ((cleanup_fun) hashtable_free,
- parent_sortkey_hash, 0);
+
+ if (!parent_keys) {
+ parent_keys = new_string_map (GL_HASH_MAP,
+ (gl_listelement_dispose_fn)
+ gl_list_free);
+ push_cleanup ((cleanup_fun) gl_map_free, parent_keys, 0);
}
/* Remember this structure for use by nextkey. */
- hashtable_install (parent_sortkey_hash,
- wrap->name, strlen (wrap->name), sortkey_hash);
+ gl_map_put (parent_keys, xstrdup (wrap->name), keys);
- if (firstkey)
- return copy_datum (firstkey->key);
+ if (gl_list_size (keys))
+ return copy_datum (*(datum *) gl_list_get_at (keys, 0));
else
- return empty_datum; /* dptr is NULL, so no copy needed */
+ return empty_datum;
}
datum man_gdbm_nextkey (man_gdbm_wrapper wrap, datum key)
{
- struct hashtable *sortkey_hash;
- struct sortkey *sortkey;
+ gl_list_t keys;
+ gl_list_node_t node, next_node;
- if (!parent_sortkey_hash)
+ if (!parent_keys)
return empty_datum;
- sortkey_hash = hashtable_lookup (parent_sortkey_hash,
- wrap->name, strlen (wrap->name));
- if (!sortkey_hash)
+ keys = (gl_list_t) gl_map_get (parent_keys, wrap->name);
+ if (!keys)
return empty_datum;
- sortkey = hashtable_lookup (sortkey_hash,
- MYDBM_DPTR (key), MYDBM_DSIZE (key));
- if (!sortkey || !sortkey->next)
+ node = gl_sortedlist_search (keys, datum_compare, &key);
+ if (!node)
+ return empty_datum;
+ next_node = gl_list_next_node (keys, node);
+ if (!next_node)
return empty_datum;
- return copy_datum (sortkey->next->key);
+ return copy_datum (*(datum *) gl_list_node_value (keys, next_node));
}
struct timespec man_gdbm_get_time (man_gdbm_wrapper wrap)
@@ -255,14 +237,8 @@ void man_gdbm_close (man_gdbm_wrapper wrap)
if (!wrap)
return;
- if (parent_sortkey_hash) {
- struct hashtable *sortkey_hash =
- hashtable_lookup (parent_sortkey_hash,
- wrap->name, strlen (wrap->name));
- if (sortkey_hash)
- hashtable_remove (parent_sortkey_hash,
- wrap->name, strlen (wrap->name));
- }
+ if (parent_keys)
+ gl_map_remove (parent_keys, wrap->name);
free (wrap->name);
gdbm_close (wrap->file);
diff --git a/libdb/db_lookup.c b/libdb/db_lookup.c
index 140a5050..28cd90e2 100644
--- a/libdb/db_lookup.c
+++ b/libdb/db_lookup.c
@@ -26,6 +26,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
@@ -33,7 +34,10 @@
#include <stdlib.h>
#include <unistd.h>
+#include "error.h"
#include "fnmatch.h"
+#include "gl_array_list.h"
+#include "gl_xlist.h"
#include "regex.h"
#include "xvasprintf.h"
@@ -42,8 +46,7 @@
#include "manconfig.h"
-#include "error.h"
-#include "lower.h"
+#include "glcontainers.h"
#include "wordfnmatch.h"
#include "xregcomp.h"
@@ -145,19 +148,12 @@ void free_mandata_elements (struct mandata *pinfo)
free (pinfo->name); /* free the real name */
}
-/* Go through the linked list of structures, free()ing the 'content' and the
- * structs themselves.
- */
+/* Free a mandata structure and its elements. */
void free_mandata_struct (struct mandata *pinfo)
{
- while (pinfo) {
- struct mandata *next;
-
- next = pinfo->next;
+ if (pinfo)
free_mandata_elements (pinfo);
- free (pinfo); /* free the structure */
- pinfo = next;
- }
+ free (pinfo);
}
/* Get the key that should be used for a given name. The caller is
@@ -165,7 +161,13 @@ void free_mandata_struct (struct mandata *pinfo)
*/
char *name_to_key (const char *name)
{
- return lower (name);
+ char *low, *p;
+
+ p = low = xmalloc (strlen (name) + 1);
+ while (*name)
+ *p++ = CTYPE (tolower, *name++);
+ *p = *name;
+ return low;
}
/* return char ptr array to the data's fields */
@@ -218,39 +220,43 @@ void split_content (char *cont_ptr, struct mandata *pinfo)
pinfo->whatis = *(data);
pinfo->addr = cont_ptr;
- pinfo->next = (struct mandata *) NULL;
+}
+
+static bool name_ext_equals (const void *elt1, const void *elt2)
+{
+ const struct name_ext *ref1 = elt1, *ref2 = elt2;
+ return STREQ (ref1->name, ref2->name) && STREQ (ref1->ext, ref2->ext);
}
/* Extract all of the names/extensions associated with this key. Each case
* variant of a name will be returned separately.
*
- * names and ext should be pointers to valid memory which will be filled in
- * with the address of the allocated arrays of names and extensions. The
- * caller is expected to free these arrays.
+ * This returns a newly-allocated list of struct name_ext, which the caller
+ * is expected to free.
*/
-int list_extensions (char *data, char ***names, char ***ext)
+gl_list_t list_extensions (char *data)
{
- int count = 0;
- int bound = 4; /* most multi keys will have fewer than this */
-
- *names = xnmalloc (bound, sizeof **names);
- *ext = xnmalloc (bound, sizeof **ext);
- while (((*names)[count] = strsep (&data, "\t")) != NULL) {
- (*ext)[count] = strsep (&data, "\t");
- if ((*ext)[count])
- ++count;
- else
+ gl_list_t list = gl_list_create_empty (GL_ARRAY_LIST, name_ext_equals,
+ NULL, plain_free, true);
+ char *name;
+
+ while ((name = strsep (&data, "\t")) != NULL) {
+ char *ext;
+ struct name_ext *name_ext;
+
+ ext = strsep (&data, "\t");
+ if (!ext)
break;
- if (count >= bound) {
- bound *= 2;
- *names = xnrealloc (*names, bound, sizeof **names);
- *ext = xnrealloc (*ext, bound, sizeof **ext);
- }
+ name_ext = XMALLOC (struct name_ext);
+ /* Don't copy these; they will point into the given string. */
+ name_ext->name = name;
+ name_ext->ext = ext;
+ gl_list_add_last (list, name_ext);
}
- debug ("found %d names/extensions\n", count);
- return count;
+ debug ("found %zd names/extensions\n", gl_list_size (list));
+ return list;
}
/* These should be bitwise-ored together. */
@@ -261,16 +267,22 @@ int list_extensions (char *data, char ***names, char ***ext)
/*
There are three possibilities on lookup:
- 1) No data exists, lookup will fail, returned structure will be NULL.
- 2) One data item exists. Item is returned as first in set of structures.
- 3) Many items exist. They are all returned, in a multiple structure set.
+ 1) No data exists, lookup will fail, zero-length list will be returned.
+ 2) One data item exists. Item is returned as first in list of structures.
+ 3) Many items exist. They are all returned, in a multiple structure list.
*/
-static struct mandata *dblookup (MYDBM_FILE dbf, const char *page,
- const char *section, int flags)
+static gl_list_t dblookup (MYDBM_FILE dbf, const char *page,
+ const char *section, int flags)
{
+ gl_list_t infos;
struct mandata *info = NULL;
datum key, cont;
+ infos = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL,
+ (gl_listelement_dispose_fn)
+ free_mandata_struct,
+ true);
+
memset (&key, 0, sizeof key);
memset (&cont, 0, sizeof cont);
@@ -278,41 +290,44 @@ static struct mandata *dblookup (MYDBM_FILE dbf, const char *page,
cont = MYDBM_FETCH (dbf, key);
MYDBM_FREE_DPTR (key);
- if (MYDBM_DPTR (cont) == NULL) { /* No entries at all */
- return info; /* indicate no entries */
- } else if (*MYDBM_DPTR (cont) != '\t') { /* Just one entry */
+ if (MYDBM_DPTR (cont) == NULL) /* No entries at all */
+ ;
+ else if (*MYDBM_DPTR (cont) != '\t') { /* Just one entry */
+ bool matches = false;
+
info = infoalloc ();
split_content (MYDBM_DPTR (cont), info);
if (!info->name)
info->name = xstrdup (page);
if (!(flags & MATCH_CASE) || STREQ (info->name, page)) {
if (section == NULL)
- return info;
- if (flags & EXACT) {
+ matches = true;
+ else if (flags & EXACT) {
if (STREQ (section, info->ext))
- return info;
+ matches = true;
} else {
if (STRNEQ (section, info->ext,
strlen (section)))
- return info;
+ matches = true;
}
}
- free_mandata_struct (info);
- return NULL;
- } else { /* multiple entries */
- char **names, **ext;
- struct mandata *ret = NULL;
- int refs, i;
+ if (matches)
+ gl_list_add_last (infos, info);
+ else
+ free_mandata_struct (info);
+ } else { /* Multiple entries */
+ gl_list_t refs;
+ struct name_ext *ref;
/* Extract all of the case-variant-names/extensions
* associated with this key.
*/
- refs = list_extensions (MYDBM_DPTR (cont) + 1, &names, &ext);
+ refs = list_extensions (MYDBM_DPTR (cont) + 1);
/* Make the multi keys and look them up */
- for (i = 0; i < refs; ++i) {
+ GL_LIST_FOREACH_START (refs, ref) {
datum multi_cont;
memset (&multi_cont, 0, sizeof multi_cont);
@@ -321,22 +336,22 @@ static struct mandata *dblookup (MYDBM_FILE dbf, const char *page,
* suitable.
*/
- if ((flags & MATCH_CASE) && !STREQ (names[i], page))
+ if ((flags & MATCH_CASE) && !STREQ (ref->name, page))
continue;
if (section != NULL) {
if (flags & EXACT) {
- if (!STREQ (section, ext[i]))
+ if (!STREQ (section, ref->ext))
continue;
} else {
- if (!STRNEQ (section, ext[i],
+ if (!STRNEQ (section, ref->ext,
strlen (section)))
continue;
}
}
/* So the key is suitable ... */
- key = make_multi_key (names[i], ext[i]);
+ key = make_multi_key (ref->name, ref->ext);
debug ("multi key lookup (%s)\n", MYDBM_DPTR (key));
multi_cont = MYDBM_FETCH (dbf, key);
if (MYDBM_DPTR (multi_cont) == NULL) {
@@ -346,46 +361,58 @@ static struct mandata *dblookup (MYDBM_FILE dbf, const char *page,
}
MYDBM_FREE_DPTR (key);
- /* allocate info struct, fill it in and
- point info to the next in the list */
- if (!ret)
- ret = info = infoalloc ();
- else
- info = info->next = infoalloc ();
+ /* Allocate info struct and add it to the list. */
+ info = infoalloc ();
split_content (MYDBM_DPTR (multi_cont), info);
if (!info->name)
- info->name = xstrdup (names[i]);
- }
+ info->name = xstrdup (ref->name);
+ gl_list_add_last (infos, info);
+ } GL_LIST_FOREACH_END (refs);
- free (names);
- free (ext);
+ gl_list_free (refs);
MYDBM_FREE_DPTR (cont);
- return ret;
}
+
+ return infos;
}
-struct mandata *dblookup_all (MYDBM_FILE dbf, const char *page,
- const char *section, int match_case)
+gl_list_t dblookup_all (MYDBM_FILE dbf, const char *page,
+ const char *section, bool match_case)
{
return dblookup (dbf, page, section,
ALL | (match_case ? MATCH_CASE : 0));
}
struct mandata *dblookup_exact (MYDBM_FILE dbf, const char *page,
- const char *section, int match_case)
+ const char *section, bool match_case)
{
- return dblookup (dbf, page, section,
- EXACT | (match_case ? MATCH_CASE : 0));
+ gl_list_t infos = dblookup (dbf, page, section,
+ EXACT | (match_case ? MATCH_CASE : 0));
+ struct mandata *info = NULL;
+
+ if (gl_list_size (infos)) {
+ /* Return the first item and free the rest of the list. */
+ info = (struct mandata *) gl_list_get_at (infos, 0);
+ gl_list_set_at (infos, 0, NULL); /* steal memory */
+ }
+ gl_list_free (infos);
+ return info;
}
-struct mandata *dblookup_pattern (MYDBM_FILE dbf, const char *pattern,
- const char *section, int match_case,
- int pattern_regex, int try_descriptions)
+gl_list_t dblookup_pattern (MYDBM_FILE dbf, const char *pattern,
+ const char *section, bool match_case,
+ bool pattern_regex, bool try_descriptions)
{
- struct mandata *ret = NULL, *tail = NULL;
+ gl_list_t infos;
+ struct mandata *tail = NULL;
datum key, cont;
regex_t preg;
+ infos = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL,
+ (gl_listelement_dispose_fn)
+ free_mandata_struct,
+ true);
+
if (pattern_regex)
xregcomp (&preg, pattern,
REG_EXTENDED | REG_NOSUB |
@@ -405,7 +432,7 @@ struct mandata *dblookup_pattern (MYDBM_FILE dbf, const char *pattern,
#endif /* !BTREE */
struct mandata info;
char *tab;
- int got_match;
+ bool got_match;
memset (&info, 0, sizeof (info));
@@ -460,13 +487,11 @@ struct mandata *dblookup_pattern (MYDBM_FILE dbf, const char *pattern,
if (!got_match)
goto nextpage_tab;
- if (!ret)
- ret = tail = infoalloc ();
- else
- tail = tail->next = infoalloc ();
+ tail = infoalloc ();
memcpy (tail, &info, sizeof (info));
info.name = NULL; /* steal memory */
MYDBM_SET_DPTR (cont, NULL); /* == info.addr */
+ gl_list_add_last (infos, tail);
nextpage_tab:
if (tab)
@@ -489,5 +514,5 @@ nextpage:
if (pattern_regex)
regfree (&preg);
- return ret;
+ return infos;
}
diff --git a/libdb/db_ndbm.c b/libdb/db_ndbm.c
index af970322..992173ae 100644
--- a/libdb/db_ndbm.c
+++ b/libdb/db_ndbm.c
@@ -28,17 +28,13 @@
#include <stdlib.h>
#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
#include <sys/file.h> /* for flock() */
#include <sys/types.h> /* for open() */
#include <sys/stat.h>
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
-#include <unistd.h>
-
#include "stat-time.h"
#include "timespec.h"
#include "xvasprintf.h"
diff --git a/libdb/db_storage.h b/libdb/db_storage.h
index 6db37bb7..a04196bc 100644
--- a/libdb/db_storage.h
+++ b/libdb/db_storage.h
@@ -26,6 +26,8 @@
#ifndef DB_STORAGE_H
#define DB_STORAGE_H
+#include "gl_list.h"
+
/* These definitions give an inherent precedence to each particular type
of manual page:
@@ -52,7 +54,6 @@
#include "mydbm.h"
struct mandata {
- struct mandata *next; /* ptr to next structure, if any */
char *addr; /* ptr to memory containing the fields */
char *name; /* Name of page, if != key */
@@ -71,15 +72,19 @@ struct mandata {
struct timespec mtime; /* mod time for file */
};
+struct name_ext {
+ const char *name;
+ const char *ext;
+};
+
/* used by the world */
-extern struct mandata *dblookup_all (MYDBM_FILE dbf, const char *page,
- const char *section, int match_case);
+extern gl_list_t dblookup_all (MYDBM_FILE dbf, const char *page,
+ const char *section, bool match_case);
extern struct mandata *dblookup_exact (MYDBM_FILE dbf, const char *page,
- const char *section, int match_case);
-extern struct mandata *dblookup_pattern (MYDBM_FILE dbf, const char *page,
- const char *section, int match_case,
- int pattern_regex,
- int try_descriptions);
+ const char *section, bool match_case);
+extern gl_list_t dblookup_pattern (MYDBM_FILE dbf, const char *page,
+ const char *section, bool match_case,
+ bool pattern_regex, bool try_descriptions);
extern int dbstore (MYDBM_FILE dbf, struct mandata *in, const char *base);
extern int dbdelete (MYDBM_FILE dbf, const char *name, struct mandata *in);
extern void dbprintf (const struct mandata *info);
@@ -97,7 +102,8 @@ extern datum make_multi_key (const char *page, const char *ext);
#define infoalloc() XZALLOC (struct mandata)
extern char *name_to_key (const char *name);
-extern int list_extensions (char *data, char ***names, char ***ext);
+/* Returns a list of struct name_ext. */
+extern gl_list_t list_extensions (char *data);
extern void gripe_replace_key (const char *data);
extern const char *dash_if_unset (const char *str);
diff --git a/libdb/mydbm.h b/libdb/mydbm.h
index 567e96ad..32053e3e 100644
--- a/libdb/mydbm.h
+++ b/libdb/mydbm.h
@@ -90,12 +90,9 @@ void man_gdbm_close (man_gdbm_wrapper wrap);
# elif defined(NDBM) && !defined(GDBM) && !defined(BTREE)
+# include <fcntl.h>
# include <ndbm.h>
-# if HAVE_FCNTL_H
-# include <fcntl.h>
-# endif
-
/* Berkeley db routines emulate ndbm but don't add .dir & .pag, just .db! */
# ifdef _DB_H_ /* has Berkeley db.h been included? */
# define BERKELEY_DB
diff --git a/m4/man-arg-manual.m4 b/m4/man-arg-manual.m4
new file mode 100644
index 00000000..a9c1d37d
--- /dev/null
+++ b/m4/man-arg-manual.m4
@@ -0,0 +1,13 @@
+# man-arg-manual.m4 serial 1
+dnl MAN_ARG_MANUAL
+dnl Add a --disable-manual option.
+dnl This may be useful when cross-compiling, or to reduce the installation
+dnl size.
+
+AC_DEFUN([MAN_ARG_MANUAL],
+[
+AC_ARG_ENABLE([manual],
+[AS_HELP_STRING([--disable-manual], [don't build or install the man-db manual])],
+ [enable_manual="$enableval"], [enable_manual=yes])
+AM_CONDITIONAL([BUILD_MANUAL], [test "$enable_manual" = yes])
+])
diff --git a/m4/man-arg-systemdsystemunitdir.m4 b/m4/man-arg-systemdsystemunitdir.m4
index 3901964f..33214143 100644
--- a/m4/man-arg-systemdsystemunitdir.m4
+++ b/m4/man-arg-systemdsystemunitdir.m4
@@ -1,18 +1,24 @@
-# man-arg-systemdsystemunitdir.m4 serial 2
+# man-arg-systemdsystemunitdir.m4 serial 3
dnl MAN_ARG_SYSTEMDSYSTEMUNITDIR
dnl Add a --with-systemdsystemunitdir option.
AC_DEFUN([MAN_ARG_SYSTEMDSYSTEMUNITDIR],
[
+AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_WITH([systemdsystemunitdir],
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files (disable with "no")])],
[], [dnl
# The default is not prefix-sensitive, since systemd's prefix is not
# necessarily the same as man-db's.
- m4_pushdef([AC_ARG_VAR])dnl No need for precious variable handling.
- PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
- [], [with_systemdsystemunitdir=/lib/systemd/system])
- m4_popdef([AC_ARG_VAR])])
+ case $host_os in
+ linux*)
+ m4_pushdef([AC_ARG_VAR])dnl No need for precious variable handling.
+ PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
+ [], [with_systemdsystemunitdir=/lib/systemd/system])
+ m4_popdef([AC_ARG_VAR])
+ ;;
+ *) with_systemdsystemunitdir=no ;;
+ esac])
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
AM_CONDITIONAL([INSTALL_SYSTEMD_TIMER], [test "$with_systemdsystemunitdir" != "no"])
])
diff --git a/m4/man-arg-systemdtmpfilesdir.m4 b/m4/man-arg-systemdtmpfilesdir.m4
index 6254d4b9..ae7195f6 100644
--- a/m4/man-arg-systemdtmpfilesdir.m4
+++ b/m4/man-arg-systemdtmpfilesdir.m4
@@ -1,18 +1,24 @@
-# man-arg-systemdtmpfilesdir.m4 serial 3
+# man-arg-systemdtmpfilesdir.m4 serial 4
dnl MAN_ARG_SYSTEMDTMPFILESDIR
dnl Add a --with-systemdtmpfilesdir option.
AC_DEFUN([MAN_ARG_SYSTEMDTMPFILESDIR],
[
+AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_WITH([systemdtmpfilesdir],
[AS_HELP_STRING([--with-systemdtmpfilesdir=DIR], [Directory for systemd tmpfiles configuration (disable with "no")])],
[], [dnl
# The default is not prefix-sensitive, since systemd's prefix is not
# necessarily the same as man-db's.
- m4_pushdef([AC_ARG_VAR])dnl No need for precious variable handling.
- PKG_CHECK_VAR([with_systemdtmpfilesdir], [systemd], [tmpfilesdir],
- [], [with_systemdtmpfilesdir=/usr/lib/tmpfiles.d])
- m4_popdef([AC_ARG_VAR])])
+ case $host_os in
+ linux*)
+ m4_pushdef([AC_ARG_VAR])dnl No need for precious variable handling.
+ PKG_CHECK_VAR([with_systemdtmpfilesdir], [systemd], [tmpfilesdir],
+ [], [with_systemdtmpfilesdir=/usr/lib/tmpfiles.d])
+ m4_popdef([AC_ARG_VAR])
+ ;;
+ *) with_systemdtmpfilesdir=no ;;
+ esac])
AC_SUBST([systemdtmpfilesdir], [$with_systemdtmpfilesdir])
AM_CONDITIONAL([INSTALL_SYSTEMD_TMPFILES], [test "$with_systemdtmpfilesdir" != "no"])
])
diff --git a/m4/man-gnu-nroff.m4 b/m4/man-gnu-nroff.m4
index 2b9fa779..9aab841d 100644
--- a/m4/man-gnu-nroff.m4
+++ b/m4/man-gnu-nroff.m4
@@ -1,4 +1,4 @@
-# man-gnu-nroff.m4 serial 2
+# man-gnu-nroff.m4 serial 3
dnl
dnl Check to see if nroff is GNU nroff, take nroff path as arg.
dnl
@@ -9,7 +9,7 @@ AC_CACHE_VAL([man_cv_prog_gnu_nroff],
[if test `$1 <<EOF | tr -d '\n'
\\n(.g
EOF
-` -eq 1
+` = 1
then
man_cv_prog_gnu_nroff=yes
else
diff --git a/man/Makefile.in b/man/Makefile.in
index 538daa37..f90abd0d 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/da/Makefile.in b/man/da/Makefile.in
index 306654c8..b83cb4a6 100644
--- a/man/da/Makefile.in
+++ b/man/da/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/de/Makefile.in b/man/de/Makefile.in
index 5acc5d75..c566a366 100644
--- a/man/de/Makefile.in
+++ b/man/de/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/es/Makefile.in b/man/es/Makefile.in
index 49821e79..15e29c4f 100644
--- a/man/es/Makefile.in
+++ b/man/es/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/fr/Makefile.in b/man/fr/Makefile.in
index d0f48670..2d8301c4 100644
--- a/man/fr/Makefile.in
+++ b/man/fr/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/id/Makefile.in b/man/id/Makefile.in
index 5bfa1f3c..51546db9 100644
--- a/man/id/Makefile.in
+++ b/man/id/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/it/Makefile.in b/man/it/Makefile.in
index 6c1a84a2..b00c7b9c 100644
--- a/man/it/Makefile.in
+++ b/man/it/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/ja/Makefile.in b/man/ja/Makefile.in
index 7c806b74..74a05e0b 100644
--- a/man/ja/Makefile.in
+++ b/man/ja/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/nl/Makefile.in b/man/nl/Makefile.in
index 2025e783..4bfca634 100644
--- a/man/nl/Makefile.in
+++ b/man/nl/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/pl/Makefile.in b/man/pl/Makefile.in
index 84af1820..34425142 100644
--- a/man/pl/Makefile.in
+++ b/man/pl/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/po4a/Makefile.in b/man/po4a/Makefile.in
index 0cb1de0f..193bee6c 100644
--- a/man/po4a/Makefile.in
+++ b/man/po4a/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/pt/Makefile.in b/man/pt/Makefile.in
index 5ba574ce..2af73274 100644
--- a/man/pt/Makefile.in
+++ b/man/pt/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/pt_BR/Makefile.in b/man/pt_BR/Makefile.in
index bcbacaf2..44d8c65a 100644
--- a/man/pt_BR/Makefile.in
+++ b/man/pt_BR/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/ru/Makefile.in b/man/ru/Makefile.in
index 7f1eb408..63f4cbc2 100644
--- a/man/ru/Makefile.in
+++ b/man/ru/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/sr/Makefile.in b/man/sr/Makefile.in
index b3b9b327..54c0c51f 100644
--- a/man/sr/Makefile.in
+++ b/man/sr/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/sv/Makefile.in b/man/sv/Makefile.in
index d522e47e..734616b5 100644
--- a/man/sv/Makefile.in
+++ b/man/sv/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/tr/Makefile.in b/man/tr/Makefile.in
index 1fe9a2e5..45f64152 100644
--- a/man/tr/Makefile.in
+++ b/man/tr/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/man/zh_CN/Makefile.in b/man/zh_CN/Makefile.in
index 03ce31b9..eb66297c 100644
--- a/man/zh_CN/Makefile.in
+++ b/man/zh_CN/Makefile.in
@@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -119,7 +120,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -163,7 +164,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/manual/Makefile.am b/manual/Makefile.am
index 783ab2aa..8da18831 100644
--- a/manual/Makefile.am
+++ b/manual/Makefile.am
@@ -39,6 +39,8 @@ dist_noinst_DATA = \
$(ME_FILES) \
options-only.me \
print-options
+
+if BUILD_MANUAL
noinst_DATA = \
$(MANUAL).cat \
$(MANUAL).ps
@@ -58,25 +60,25 @@ version: $(top_srcdir)/configure.ac
echo '.ds V $(roff_version)' > $@
$(MANUAL).pp: $(ME_FILES) version
- $(SOELIM) -I$(srcdir) man_db.me | tbl > $@
+ $(SOELIM) -I$(srcdir) man_db.me | tbl > $@.new && mv -f $@.new $@
.pp.dvi:
- $(TROFF) -me -Tdvi $< > $@
+ $(TROFF) -me -Tdvi $< > $@.new && mv -f $@.new $@
.pp.ps:
- $(TROFF) -me -Tps $< > $@
+ $(TROFF) -me -Tps $< > $@.new && mv -f $@.new $@
.pp.tdvi:
- $(TROFF) -me -Tdvi $< | grodvi -d > $@
+ $(TROFF) -me -Tdvi $< | grodvi -d > $@.new && mv -f $@.new $@
.tdvi.tps:
- dvips -f -t a4 $< > $@
+ dvips -f -t a4 $< > $@.new && mv -f $@.new $@
.pp.cat:
- LC_ALL=C nroff -me $< > $@
+ LC_ALL=C nroff -me $< > $@.new && mv -f $@.new $@
.pp.html:
- $(TROFF) -me -Thtml -P-I$* $< > $@
+ $(TROFF) -me -Thtml -P-I$* $< > $@.new && mv -f $@.new $@
# Automake defines these targets already, so we need to use -local.
dvi-local: $(MANUAL).dvi
@@ -103,3 +105,4 @@ install-data-hook:
uninstall-hook:
rm -rf "$(DESTDIR)$(docdir)"
+endif
diff --git a/manual/Makefile.in b/manual/Makefile.in
index c368c4aa..28547da1 100644
--- a/manual/Makefile.in
+++ b/manual/Makefile.in
@@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -120,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -164,7 +165,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
@@ -1373,20 +1374,20 @@ dist_noinst_DATA = \
options-only.me \
print-options
-noinst_DATA = \
- $(MANUAL).cat \
- $(MANUAL).ps
+@BUILD_MANUAL_TRUE@noinst_DATA = \
+@BUILD_MANUAL_TRUE@ $(MANUAL).cat \
+@BUILD_MANUAL_TRUE@ $(MANUAL).ps
-CLEANFILES = \
- $(noinst_DATA) \
- $(MANUAL).dvi \
- $(MANUAL).html \
- $(MANUAL).pp \
- $(MANUAL).tdvi \
- $(MANUAL).tps \
- version
+@BUILD_MANUAL_TRUE@CLEANFILES = \
+@BUILD_MANUAL_TRUE@ $(noinst_DATA) \
+@BUILD_MANUAL_TRUE@ $(MANUAL).dvi \
+@BUILD_MANUAL_TRUE@ $(MANUAL).html \
+@BUILD_MANUAL_TRUE@ $(MANUAL).pp \
+@BUILD_MANUAL_TRUE@ $(MANUAL).tdvi \
+@BUILD_MANUAL_TRUE@ $(MANUAL).tps \
+@BUILD_MANUAL_TRUE@ version
-SOELIM = soelim
+@BUILD_MANUAL_TRUE@SOELIM = soelim
all: all-am
.SUFFIXES:
@@ -1501,6 +1502,12 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+@BUILD_MANUAL_FALSE@ps-local:
+@BUILD_MANUAL_FALSE@html-local:
+@BUILD_MANUAL_FALSE@dvi-local:
+@BUILD_MANUAL_FALSE@clean-local:
+@BUILD_MANUAL_FALSE@install-data-hook:
+@BUILD_MANUAL_FALSE@uninstall-hook:
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
@@ -1587,55 +1594,55 @@ uninstall-am:
.PRECIOUS: Makefile
-version: $(top_srcdir)/configure.ac
- echo '.ds V $(roff_version)' > $@
+@BUILD_MANUAL_TRUE@version: $(top_srcdir)/configure.ac
+@BUILD_MANUAL_TRUE@ echo '.ds V $(roff_version)' > $@
-$(MANUAL).pp: $(ME_FILES) version
- $(SOELIM) -I$(srcdir) man_db.me | tbl > $@
+@BUILD_MANUAL_TRUE@$(MANUAL).pp: $(ME_FILES) version
+@BUILD_MANUAL_TRUE@ $(SOELIM) -I$(srcdir) man_db.me | tbl > $@.new && mv -f $@.new $@
-.pp.dvi:
- $(TROFF) -me -Tdvi $< > $@
+@BUILD_MANUAL_TRUE@.pp.dvi:
+@BUILD_MANUAL_TRUE@ $(TROFF) -me -Tdvi $< > $@.new && mv -f $@.new $@
-.pp.ps:
- $(TROFF) -me -Tps $< > $@
+@BUILD_MANUAL_TRUE@.pp.ps:
+@BUILD_MANUAL_TRUE@ $(TROFF) -me -Tps $< > $@.new && mv -f $@.new $@
-.pp.tdvi:
- $(TROFF) -me -Tdvi $< | grodvi -d > $@
+@BUILD_MANUAL_TRUE@.pp.tdvi:
+@BUILD_MANUAL_TRUE@ $(TROFF) -me -Tdvi $< | grodvi -d > $@.new && mv -f $@.new $@
-.tdvi.tps:
- dvips -f -t a4 $< > $@
+@BUILD_MANUAL_TRUE@.tdvi.tps:
+@BUILD_MANUAL_TRUE@ dvips -f -t a4 $< > $@.new && mv -f $@.new $@
-.pp.cat:
- LC_ALL=C nroff -me $< > $@
+@BUILD_MANUAL_TRUE@.pp.cat:
+@BUILD_MANUAL_TRUE@ LC_ALL=C nroff -me $< > $@.new && mv -f $@.new $@
-.pp.html:
- $(TROFF) -me -Thtml -P-I$* $< > $@
+@BUILD_MANUAL_TRUE@.pp.html:
+@BUILD_MANUAL_TRUE@ $(TROFF) -me -Thtml -P-I$* $< > $@.new && mv -f $@.new $@
# Automake defines these targets already, so we need to use -local.
-dvi-local: $(MANUAL).dvi
-ps-local: $(MANUAL).ps
-html-local: $(MANUAL).html
+@BUILD_MANUAL_TRUE@dvi-local: $(MANUAL).dvi
+@BUILD_MANUAL_TRUE@ps-local: $(MANUAL).ps
+@BUILD_MANUAL_TRUE@html-local: $(MANUAL).html
# These are all ours.
-cat: $(MANUAL).cat
-tps: $(MANUAL).tps
-
-clean-local:
- -rm -f $(MANUAL)-*.png
-
-install-data-hook:
- test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
- @if test -f $(MANUAL).cat; then \
- echo " $(INSTALL_DATA) $(MANUAL).cat '$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).txt'"; \
- $(INSTALL_DATA) $(MANUAL).cat "$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).txt" || exit $$?; \
- fi
- @if test -f $(MANUAL).ps; then \
- echo " $(INSTALL_DATA) $(MANUAL).ps '$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).ps'"; \
- $(INSTALL_DATA) $(MANUAL).ps "$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).ps" || exit $$?; \
- fi
-
-uninstall-hook:
- rm -rf "$(DESTDIR)$(docdir)"
+@BUILD_MANUAL_TRUE@cat: $(MANUAL).cat
+@BUILD_MANUAL_TRUE@tps: $(MANUAL).tps
+
+@BUILD_MANUAL_TRUE@clean-local:
+@BUILD_MANUAL_TRUE@ -rm -f $(MANUAL)-*.png
+
+@BUILD_MANUAL_TRUE@install-data-hook:
+@BUILD_MANUAL_TRUE@ test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
+@BUILD_MANUAL_TRUE@ @if test -f $(MANUAL).cat; then \
+@BUILD_MANUAL_TRUE@ echo " $(INSTALL_DATA) $(MANUAL).cat '$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).txt'"; \
+@BUILD_MANUAL_TRUE@ $(INSTALL_DATA) $(MANUAL).cat "$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).txt" || exit $$?; \
+@BUILD_MANUAL_TRUE@ fi
+@BUILD_MANUAL_TRUE@ @if test -f $(MANUAL).ps; then \
+@BUILD_MANUAL_TRUE@ echo " $(INSTALL_DATA) $(MANUAL).ps '$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).ps'"; \
+@BUILD_MANUAL_TRUE@ $(INSTALL_DATA) $(MANUAL).ps "$(DESTDIR)$(docdir)/$(MANUAL_INSTALL).ps" || exit $$?; \
+@BUILD_MANUAL_TRUE@ fi
+
+@BUILD_MANUAL_TRUE@uninstall-hook:
+@BUILD_MANUAL_TRUE@ rm -rf "$(DESTDIR)$(docdir)"
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/manual/intro.me b/manual/intro.me
index e83de89c..a2b45722 100644
--- a/manual/intro.me
+++ b/manual/intro.me
@@ -315,6 +315,9 @@ Normally,
will automatically try to create cat files corresponding to manual files
when a manual page is read.
This flag suppresses this behaviour.
+.ip \-\-disable\-manual
+Don't build or install the \*M manual.
+This may be useful when cross-compiling, or to reduce the installation size.
.if r MAN-OPTIONS-ONLY \{
.lp
MAN\-OPTIONS\-END
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 7fdf9b98..0bff2a4a 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,5 +1,4 @@
lib/security.c
-lib/xchown.c
lib/xregcomp.c
libdb/db_delete.c
libdb/db_lookup.c
diff --git a/po/ast.gmo b/po/ast.gmo
index f94d62fa..e15ce892 100644
--- a/po/ast.gmo
+++ b/po/ast.gmo
Binary files differ
diff --git a/po/ast.po b/po/ast.po
index 236e97f2..53bfa914 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-07-11 17:43+0100\n"
"Last-Translator: enolp <enolp@softastur.org>\n"
"Language-Team: Asturian <ubuntu-l10n-ast@lists.ubuntu.com>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 2.0\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "nun pue afitase l'UID efeutivu"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "l'usuariu man de setuid «%s» nun esiste"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "nun pue facese chown a %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: espresión regular «%s»: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "nun esiste la clave múltiple %s"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "nun pue bloquiáse la caché del índiz %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "caché del índiz %s toyida"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "nun pue trocase la clave %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "namái %d campu nel conteníu"
msgstr[1] "namái %d campos nel conteníu"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "receición fallida na clave múltiple %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Toyóse la base de datos de %s. Volvi construyila con mandb --create"
@@ -91,64 +86,64 @@ msgstr "alvertencia: %s ye de la versión %s, esperábase la %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: nun pue inxertase l'identificador de versión en %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BASE DE DATOS DE MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "La base de datos de man por defeutu ye %s%s,"
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "emite mensaxes de depuración"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "nun pue abrise %s pa la llectura"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SEICIÓN...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CAMÃN"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "afita'l camín de gueta de páxines de manual a CAMIN"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FICHERU"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "usa esti ficheru de configuración del usuariu"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "el comandu man falló col estáu de salida %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "nun pue lleese la base de datos %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "conteníu NULL pa la clave: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"Anovando los ficheros cat pa la seición %s de la xerarquía man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "nun pue escribise en %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "nun pue anovase %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "alvertencia: %s/man%s/%s.%s*: estensiones en conflictu"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "nun pue anovase la caché del índiz %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "alvertencia: %s: enllaz simbólicu o solicitú ROFF «.so» incorreutos"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "alvertencia: %s: inorando'l ficheru baleru"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "alvertecia: %s: falló l'analís de whatis pa %s(%s)"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "nun pue guetase'l direutoriu %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "nun pue facese chown a %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "alvertencia: nun pue crease'l direutoriu cat %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "nun pue facese chmod a %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "nun pue camudase al direutoriu %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "nun pue crease la caché del índiz %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Anovando la caché del índiz pal camín «%s/%s». Espera..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "fecho.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Purgando les entraes vieyes de la base de datos de %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "alvertencia: fallu al atroxar la entrada de %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "alvertencia: %s: inorando'l nome falsu de ficheru"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CAMÃN SEICIÓN NOME"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "ESTENSIÓN"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "llenda la gueta a la triba de la estensión ESTENSIÓN"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "gueta páxines distinguiendo les mayúscules (por defeutu)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "gueta páxines ensin distinguir les mayúscules (por defeutu)"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreta'l nome de la páxina como una espresión regular"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "el nome de la páxina contién comodinos"
@@ -277,194 +277,194 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "alvertencia: el whatis de %s perpase %d byte, truncando."
msgstr[1] "alvertencia: el whatis de %s perpase %d bytes, truncando."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "nun pue abrise %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FICHERU..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Lo predeterminao ye --man y --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "analiza como páxina man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "analiza como páxina cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "amuesa la informacón de whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "amuesa una serie de peñeres aldovinaes de prepocesamientu"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODIFICACIÓN"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "usa la codificación esbillada de salida"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: opciones incompatibles"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "el comandu coló col estáu %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SEICIÓN] PÃXINA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "reafita toles opciones"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "ALVERTENCIES"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "activa toles alvertencies de groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Moos principales d'operación:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "equival a whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "equival a apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "gueta testu en toles páxines"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "amuesa l'allugamientu físicu de les páxines man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "amuesa l'allugamientu físicu de los ficheros cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreta los argumentos de PÃXINA como nomes de ficheru llocal"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "usáu por catman pa reformatiar les páxines cat anticuaes"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "amuesa la salida de la páxina fonte cola codificación CODIFICACIÓN"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Gueta de páxines de manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "define la locale d'esta gueta específica de man"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEMA"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "usa les páxines de manual d'otros sistemes"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LLISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "usa una llista de seiciones separtada per comes"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "amuesa toles páxines que concasen cola espresión regular"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "amuesa les páxines que concasen col comodín"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"fai que --regex y --wildcard concasen namái colos nome de páxina, non les "
"descripciones"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "alcuentra toles páxines de manual que concasen"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "forcia una comprobación de consistencia de la caché"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "nun prueba les sopáxines, por exemplu «man foo bar» => «man foo-bar»"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Control de salida formatiada:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAXINADOR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "usa'l programa PAXINADOR p'amosar la salida"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CADENA"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "apurre'l paxinador «less» con una llinia de comandos"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "amuesa la traducción ASCII de ciertos caráuteres latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "desactiva la separtación con guiones"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "desactiva la xustificación"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -474,34 +474,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "usa %s pa formatiar páxines"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "PRESÉU"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "usa %s col preséu esbilláu"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "RESTOLADOR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "usa %s o RESTOLADOR p'amosar la salida en HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUCIÓN"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -509,83 +509,83 @@ msgstr ""
"usa groff y amuésase pente gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "usa groff y forcia la producción de ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Nun hai entrada de manual pa %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Alternativamente, ¿qué páxina de manual quies de la seición %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "¿Qué páxina de manual quies?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Nun hai entrada de manual pa %s na seición %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Mira «%s» pa más ayuda cuando nun heba páxines de manual disponibles.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "inorando'l preprocesador desconocíu «%c»"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "nun pue renomase %s a %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "nun pue afitase la data en %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "nun pue desenllazase %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "nun pue crease'l cat temporal pa %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "nun pue crease'l direutoriu temporal"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "nun pue crease'l ficheru temporal %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "nun pue desaniciase'l direutoriu %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- siguiente: %s [ volver (retrocesu) | saltar (Ctrl-D) | colar (Ctrl-"
"C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -594,27 +594,27 @@ msgstr ""
"\n"
"nun pue escribise en %s nel mou catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Nun pue convertise %s a un nome de cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: basase en referencies whatis ta anticuao\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "falló'l comandu mandb col estáu de salida %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "fallu internu: la triba de candidatu %d ta fuera de rangu"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr "Páxina de manual"
@@ -627,349 +627,347 @@ msgstr "nun pue escribise na salida estándar"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: caraúter incompletu na fin del búfer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CÓDIGU[:...] -t CÓDIGU [NOME_DE_FICHERU]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODIGU[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "codificaciones posibles del testu orixinal"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CÓDIGU"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codificación pa la salida"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produz delles alvertencies"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "has especificar una codificación d'entrada"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "has especificar una codificación de salida"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[CAMÃN_DE_MAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "trabaya de mou silenciosu quitante cuando heba alvertencies «falses»"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "nun gueta o amiesta cats güerfanos a les bases de datos"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "nun purga les entraes obsoletes de les bases de datos"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produz namái bases de datos d'usuariu"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "crea bases de datos nueves en cuentes d'anovales"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "comprueba que les páxines de manual seyan correutes"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOME_DE_FICHERU"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "namái anueva la entrada pa esti nome de ficheru"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "nun pue desaniciase %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "nun pue escribise en %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "nun pue lleese dende %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Procesando les páxines de manual so %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Desaniciando'l direutoriu cat obsoletu %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"alvertencia: nun hai denguna direutiva MANDB_MAP en %s, usando'l to manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d sodireutoriu man contenía páxines de manual más nueves.\n"
msgstr[1] "%d sodireutorios man conteníen páxines de manual más nueves.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "Amestóse %d páxina de manual.\n"
msgstr[1] "Amestáronse %d páxines de manual.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "Amestóse %d cat güérfanu.\n"
msgstr[1] "Amestáronse %d cats güérfanos.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "Purgóse %d entrada vieya de la base de datos.\n"
msgstr[1] "Purgáronse %d entraes vieyes de la base de datos.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Nun hai bases de datos creaes."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr ""
"nun pue dase sentíu al ficheru de configuración de los caminos de man %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "alvertencia: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "alvertencia: %s nun ye un direutoriu"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "la llista de los caminos de man ye perllarga"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "alvertencia: $PATH nun s'afitó"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "alvertencia: $PATH ta baleru"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "alvertencia: afitóse $MANPATH , amestando al principiu %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "alvertencia: afitóse $MANPATH , amestando %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "alvertencia: afitóse $MANPATH , inxertando %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "alvertencia: afitóse $MANPATH , inorando %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "nun pue analizase la llista de direutorios «%s»"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "nun pue abrise'l ficheru de configuración de los caminos de man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "alvertencia: el direutoriu obligatoriu %s nun esiste"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "nun pue determinase'l direutoriu actual"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "alvertencia: %s nun apenza per %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "amuesa caminos rellativos de cat"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "amuesa'l camín de man global enteru"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"alvertencia: nun s'afitaron caminos de man globales nel ficheru de "
"configuración %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "alvertencia: %s ye un enllaz simbólicu inservible"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "nun pue resolvese %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Comprobando los cats güerfanos so %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "alvertencia: nun pue anovase la caché del índiz %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s fai referencia a sigo mesmu"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "PALLABRA_CLAVE..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "La opción --regex ta activada por defeutu"
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "amuesa mensaxes d'alvertencia detallaos"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreta cada pallabra clave como una espresión regular"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "gueta coincidencies exautes en cada pallabra clave"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "Les pallabres clave contienen comodinos"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "rique que toles pallabres clave concasen"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "nun axusta la salida al anchor de la terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "gueta namái estes seiciones (separtaes per comes)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "define la locale d'esta gueta"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "¿%s qué?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "alvertencia: %s contién un bucle de punteros"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(asuntu desconocíu)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nun hai nada afayadizo.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: les solicitúes .so tán perañeraes o son recursives"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: alvertancia: fallu na solicitú .so"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: alvertencia: llinia nueva na solicitú .so, inorando"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: alvertencia: solicitú .lf malformada, inorando"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: alvertencia: llinia nueva na solicitú .lf, inorando"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: comilles ensin zarrar na solicitú roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "cambéu de compatibilidá (inórase)"
+#~ msgid "manpath list too long"
+#~ msgstr "la llista de los caminos de man ye perllarga"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "nun pue restaurase'l direutoriu de trabayu anterior"
diff --git a/po/ca.gmo b/po/ca.gmo
index 877047af..c3434480 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 5ac3acb5..56e7d0f5 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.0-pre1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2015-08-04 08:34+0200\n"
"Last-Translator: Jordi Mallach <jordi@gnu.org>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -17,27 +17,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n!=1;\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "no es pot establir l'uid efectiu"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "l'usuari man setuid «%s» no existeix"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "no es pot fer «chown» a %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: expreg «%s»: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "la clau múltiple %s no existeix"
@@ -45,36 +40,36 @@ msgstr "la clau múltiple %s no existeix"
# Potser «%s» és de la cache i no de l'índex, aleshores seria:
# «no es pot blocar la cache d'índexs %s» o semblant. ivb
# Després de consultar-ho, tens raó. jm
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "no es pot blocar la memòria cau d'índex %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "la memòria cau d'índex %s està corrompuda"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "no es pot reemplaçar la clau %s"
# I què tal «només hi ha...». ivb
# yep. jm
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "només hi ha %d camp en el contingut"
msgstr[1] "només hi ha %d camps en el contingut"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "recepció errònia en clau múltiple %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "La base de dades %s està corrompuda; reconstruïu-la amb mandb --create"
@@ -94,66 +89,66 @@ msgstr "avís: %s té versió %s, s'espera %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: no s'ha pogut inserir un identificador de versió en %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BASE DE DADES DE MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "La base de dades de man per defecte és %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "produeix informació de depuració"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "no es pot obrir %s per a lectura"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECCIÓ…]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CAMÃ"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "estableix el camí de cerca de pàgines de manual a CAMÃ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FITXER"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "empra aquest fitxer de configuració de l'usuari"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "l'ordre de man ha fallat amb l'estat d'eixida %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "no es pot llegir la base de dades %s"
# Potser siga només «per», en tot cas crec que «de» és més adequat. ivb
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "contingut NUL de la clau: %s"
# Alguna guia d'estil proposava «S'estan actualitzant...». ivb
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -163,122 +158,127 @@ msgstr ""
"S'estan actualitzant els fitxers cat per a la secció %s de la jerarquia de "
"man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "no es pot escriure en %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "no es pot actualitzar %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "avís: %s/man%s/%s.%s*: extensions en competència"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "no es pot actualitzar la memòria cau d'índex %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "avís: %s: enllaç simbòlic o petició ROFF «.so» incorrecte"
# «es descarta...» ivb
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "avís: %s: es descarta un fitxer buit"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "avís: %s: l'anàlisi de whatis per a %s(%s) ha fallat"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "no es pot cercar el directori %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "no es pot fer «chown» a %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "avís: no es pot crear el directori de cat %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "no es pot fer «chmod» a %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "no es pot canviar al directori %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "no es pot crear la memòria cau d'índex %s"
# S'està... Per/per a/de? ivb
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "S'està actualitzant la memòria cau d'índex del camí «%s/%s». Espereu…"
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "fet.\n"
# S'estan... ivb
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "S'estan purgant entrades antigues de la base de dades en %s…\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "avís: no s'ha pogut desar l'entrada per a %s(%s)"
# Aquesta accepció d'«ignorar» és un anglicisme. Descartar? ivb
# Sí, de fet ho volia haver marcat amb "jm". jm
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "avís: %s: s'ha descartat un nom de fitxer estrany"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CAMà SECCIÓ NOM"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSIÓ"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "limita la cerca al tipus d'extensió EXTENSIÓ"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
"cerca les pàgines sense diferenciar majúscules i minúscules (per defecte)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "cerca les pàgines diferenciant majúscules i minúscules"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreta el nom de la pàgina com si fora una expressió regular"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "el nom de la pàgina conté comodins"
@@ -290,195 +290,195 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "avís: el whatis per a %s s'excedeix en %d octet, es truncarà."
msgstr[1] "avís: el whatis per a %s s'excedeix en %d octets, es truncarà."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "no es pot obrir %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FITXER…"
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Els valors per defecte són --man i --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "analitza com si fora una pàgina de manual"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "analitza com si fora una pàgina de cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "mostra informació whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "mostra sèries endevinades de filtres de preprocés"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODIFICACIÓ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "empra la codificació d'eixida seleccionada"
# Frase completa: «les opcions són incompatibles» ivb
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: les opcions són incompatibles"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "l'ordre ha finalitzat amb l'estat %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECCIÓ] PÀGINA…"
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "reestableix totes les opcions als seus valors per defecte"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVISOS"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "habilita els avisos del groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Modes principals de funcionament:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "equivalent a «whatis»"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "equivalent a «apropos»"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "cerca text a totes les pàgines"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "mostra la ubicació física de les pàgines de manual"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "mostra la ubicació física dels fitxers cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreta els arguments PÀGINA com a noms de fitxers locals"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "emprat per catman per a reformatar pàgines de cat antiquades"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "mostra el font de la pàgina codificat amb CODIFICACIÓ"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Cerca de pàgines de manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "defineix el locale per a aquesta cerca de manuals concreta"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEMA"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "empra pàgines de manual d'altres sistemes"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LLISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "empra una llista de seccions separada per dos punts"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "mostra totes les pàgines que concorden amb una expressió regular"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "mostra totes les pàgines que concorden amb un comodí"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"fes que --regex i --wildcard concorden només amb noms de pàgines, no "
"descripcions"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "cerca totes les pàgines de manual coincidents"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "força una comprovació de consistència de la memòria cau"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "no proves subpàgines, p. ex. «man foo bar» → «man foo-bar»"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Control de l'eixida formatada"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGINADOR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "empra el programa PAGINADOR per a mostrar l'eixida"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CADENA"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "proveeix el paginador «less» amb un indicador"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "mostra traduccions ASCII d'alguns caràcters latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "inhabilita la separació sil·làbica"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "inhabilita el sagnat"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -488,34 +488,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "empra %s per a formatar les pàgines"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "DISPOSITIU"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "empra %s amb el dispositiu seleccionat"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "NAVEGADOR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "empra %s o NAVEGADOR per a mostrar l'eixida HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUCIÓ"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -523,32 +523,32 @@ msgstr ""
"empra groff i mostra a través de gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "utilitza groff i força la producció de ditroff"
# per/per a/de? ivb
# crec que és millor per a. jm
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "No hi ha una entrada de manual per a %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Alternativament, quina pàgina de manual voleu de la secció %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Quina pàgina de manual voleu?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "No hi ha una entrada de manual per a %s a la secció %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
@@ -556,12 +556,12 @@ msgstr ""
"disponibles.\n"
# «es descarta el...» ivb
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "es descarta el preprocessador desconegut «%c»"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "no es pot reanomenar %s a %s"
@@ -569,43 +569,43 @@ msgstr "no es pot reanomenar %s a %s"
# Segurament es referirà a l'{a,m,c}time; hores/dates? ivb
# I en eixe cas, què sugereixes? jm
# Allò que s'use majoritàriament pel cas, només era per assegurar-me. ivb
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "no es poden establir les hores en %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "no es pot desenllaçar %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "no es pot crear un fitxer cat temporal per a %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "no es pot crear un directori temporal"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "no es pot obrir el fitxer temporal %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "no es pot eliminar el directori %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- següent: %s [ visualitza (retorn) | omet (Ctrl-D) | surt (Ctrl-C ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -614,29 +614,29 @@ msgstr ""
"\n"
"no es pot escriure a %s en el mode catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "No es pot convertir %s a nom cat"
# Lo de sempre, deprecated? jm
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: basar-se en referències whatis està desaconsellat\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "l'ordre de mandb ha fallat amb l'estat d'eixida %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr ""
"s'ha produït un error intern: el candidat de tipus %d està fora de rang"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Pàgina de manual "
@@ -649,311 +649,306 @@ msgstr "no es pot escriure a l'eixida estàndard"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: caràcter incomplet al final del búfer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CODI[:…] -t CODI [NOMFITXER]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODI[:…]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "codificacions possibles del text original"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CODI"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codificació per a l'eixida"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produeix menys avisos"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "s'ha d'especificar una codificació d'entrada"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "s'ha d'especificar una codificació d'eixida"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[CAMÃ DE MAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "treballa silenciosament, excepte per a avisos estranys"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "no cerques o afegisques cats orfes a les bd"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "no purgues entrades obsoletes de les bd"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produeix només bases de dades d'usuari"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "crea db noves, en comptes d'actualitzar-les"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "comprova que les pàgines de manual són correctes"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOMFITXER"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "actualitza només l'entrada per a aquest nom de fitxer"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "no es pot eliminar %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "no es pot escriure en %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "no es pot llegir de %s"
# Si es refereix a un directori, «sota». ivb
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Processant pàgines de manual sota %s…\n"
# S'estan... ivb
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "S'està suprimint el directori de cats obsolet %s…\n"
# s'està utilitzant/s'utilitza/s'utilitzarà ivb
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"avís: no hi ha directives MANDB_MAP en %s, s'utilitzarà el vostre camí de man"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d subdirectori de man contenia pàgines de manual més noves.\n"
msgstr[1] "%d subdirectoris de man contenien pàgines de manual més noves.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "S'ha afegit %d pàgina de manual.\n"
msgstr[1] "S'han afegit %d pàgines de manual.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "S'ha afegit %d cat orfe.\n"
msgstr[1] "S'han afegit %d cats orfes.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "S'ha purgat %d entrada vella de la base de dades.\n"
msgstr[1] "S'han purgat %d entrades velles de la base de dades.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "No s'ha creat cap base de dades."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "no s'enten el fitxer de configuració del camí de man %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "avís: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "avís: %s no és un directori"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "la llista de camí de man és massa llarga"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "avís: $PATH no està establert"
# Frase completa. ivb
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "avís: $PATH està buit"
# Frase completa. ivb
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "avís: $MANPATH està establert, s'afegirà al principi %s"
# Frase completa. ivb
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "avís: $MANPATH està establert, s'afegirà %s"
# Frase completa. ivb
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "avís: $MANPATH està establert, s'inserirà %s"
# Frase completa. Anglicisme. ivb
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "avís: $MANPATH establert, es descartarà %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "no es pot analitzar sintàcticament la llista de directoris «%s»"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "no es pot obrir el fitxer de configuració del camí de man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "avís: el directori requerit %s no existeix"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "no es pot determinar el directori actual"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "avís: %s no comença amb %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "mostra els camins de cat relatius"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "mostra el camí de man global sencer"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"avís: no hi ha camins de man globals establerts al fitxer de configuració %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "avís: %s és un enllaç simbòlic trencat"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "no es pot resoldre %s"
# S'estan... ivb
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "S'estan cercant cats orfes sota %s…\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "no es pot actualitzar la memòria cau d'índex %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s es referència a ell mateix"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "PARAULACLAU…"
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "L'opció --regex està habilitada per defecte."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "mostra missatges d'avís detallats"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreta cada paraula clau com si fora una expressió regular"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "cerca coincidències exactes en cada paraula clau"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "les paraules clau contenen comodins"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "requereix que concorden totes les paraules clau"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "no ajustes l'eixida a l'amplada del terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "cerca només en aquestes seccions (separades per punts i coma)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "defineix el locale per a aquesta cerca"
# «comor?» ivb
# «el que tu has dit entendre no he pogut» yoda
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s què?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "avís: %s conté un bucle de punters"
@@ -962,52 +957,55 @@ msgstr "avís: %s conté un bucle de punters"
# Gènere? Nombre? És bo posar-ne un comentari. ivb
# Pareix que es refereix al resultat d'un whois. «whois desconegut?» jm
# Arreglat en 2.4.0pre. jm
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(assumpte desconegut)"
# «res d'apropiat»? ivb
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: res d'apropiat.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
"%s:%d: les peticions de .so estan niuades amb massa profunditat o són "
"recursives"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: avís: ha fallat la petició de .so"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: avís: nova línia a la petició de .so, es descarta"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: avís: la petició de .lf és malformada, es descarta"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: avís: nova línia a la petició .lf, es descarta"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: cometa no terminada a la petició roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "commutador de compatibilitat (descartat)"
+#~ msgid "manpath list too long"
+#~ msgstr "la llista de camí de man és massa llarga"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "no es pot crear un directori temporal"
diff --git a/po/cs.gmo b/po/cs.gmo
index 5ba41ef4..79380f46 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 0a4ee427..32d6fac1 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.6.1-pre1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2012-04-07 19:04+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -18,47 +18,42 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "nelze nastavit platné uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "uživatel manuálových stránek „%s“ použitý v setuid neexistuje"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "nelze změnit vlastnictví %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "Fatální chyba: regulární výraz „%s“: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "vícenásobný klÃ­Ä %s neexistuje"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "nelze zamknout rejstřík %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "rejstřík %s je poškozen"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "nelze nahradit klÃ­Ä %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
@@ -66,12 +61,12 @@ msgstr[0] "pouze %d položka v obsahu"
msgstr[1] "pouze %d položky v obsahu"
msgstr[2] "pouze %d položek v obsahu"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "nelze získat vícenásobný klÃ­Ä %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Databáze %s je poškozena; znovu ji sestavte pomocí „mandb --create“"
@@ -91,64 +86,64 @@ msgstr "varování: soubor %s je verze %s, ale oÄekávána je verze %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatální chyba: nelze vložit identifikátor verze do souboru %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MANUÃLOVÃ DATABÃZE]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Výchozí manuálová databáze je %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "vysílat ladicí zprávy"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "soubor %s nelze otevřít pro Ätení"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[ODDÃL…]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CESTA"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "nastavit cestu pro vyhledávání v manuálových stránkách na CESTA"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "SOUBOR"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "použít tento soubor s uživatelským nastavením"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "příkaz man skonÄil s návratovým kódem %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "databázi %s nelze Äíst"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "položka pod klíÄem %s je prázdná"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"Aktualizují se katalogové soubory pro oddíl %s v manuálové hierarchii %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "nelze zapisovat do %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "nelze aktualizovat %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "varování: %s/man%s/%s.%s*: nesluÄitelné přípony"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "nelze aktualizovat rejstřík %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "varování: %s: chybný symbolický odkaz nebo požadavek „.so“ od ROFF"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "varování: %s: ignoruje se prázdný soubor"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "varování: %s: selhalo zpracování programem whatis pro %s(%s)"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "nelze prohledat složku %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "nelze změnit vlastnictví %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "varování: nelze vytvořit složku %s pro katalogy"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "nelze změnit oprávnění k %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "nelze se přepnout do složky %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "nelze vytvořit rejstřík %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Aktualizuje se rejstřík pro cestu „%s/%s“. Čekejte…"
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "dokonÄeno.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Mažou se staré databázové záznamy v %s…\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "varování: selhalo uchování záznamu pro %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "varování: %s: ignoruje se falešný název souboru"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CESTA ODDÃL NÃZEV"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "PŘÃPONA"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "omezit hledání na přípony typu PŘÃPONA"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "při hledání stránek nerozlišovat velikost písmen (výchozí)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "při hledání stránek rozlišovat velikost písmen"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "považovat název stránky za regulární výraz"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "název stránky obsahuje divoké znaky"
@@ -278,196 +278,196 @@ msgstr[0] "varování: program whatis pro %s pÅ™ekroÄil %d bajt, bude zkrácen"
msgstr[1] "varování: program whatis pro %s pÅ™ekroÄil %d bajty, bude zkrácen"
msgstr[2] "varování: program whatis pro %s pÅ™ekroÄil %d bajtů, bude zkrácen"
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "nelze otevřít soubor %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "SOUBOR…"
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Výchozí jsou --man a --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "zpracovat jako manuálové stránky"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "zpracovat jako katalogové stránky"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "zobrazit informace programu whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "zobrazit předpokládanou sérii předzpracujících filtrů"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KÓDOVÃNÃ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "použít vybrané výstupní kódování"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: nekompatibilní pÅ™epínaÄe"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "příkaz skonÄil s návratovým kódem %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[ODDÃL] STRÃNKA…"
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "nastavit vÅ¡echny pÅ™epínaÄe na jejich výchozí hodnoty"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "VAROVÃNÃ"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "povolit varování od programu groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Hlavní režimy operací:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "to stejné jako program whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "to stejné jako program apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "hledat text ve všech stránkách"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "vypsat fyzické umístÄ›ní manuálové stránky (Äi stránek)"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "vypsat fyzické umístÄ›ní katalogového souboru (Äi souborů)"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr ""
"vykládat si argument(y) STRÃNKA jako název místního souboru (Äi souborů)"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "použít program catman k přeformátování neaktuálních stránek"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "vypsat zdrojovou stránku kódovanou v KÓDOVÃNÃ"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Hledání manuálových stránek:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr ""
"definovat národní prostředí LOCALE pro toto konkrétní hledání v manuálových "
"stránkách"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTÉM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "použít manuálové stránky z jiných systémů"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "SEZNAM"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "použít dvojteÄkami oddÄ›lovaný seznam oddílů"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "zobrazit všechny stránky odpovídající regulárnímu výrazu"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "zobrazit všechny stránky odpovídající divokým znakům"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"nechť se --regex a --wildcard porovnávají jen s názvem stránky, ne s popisem"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "najít všechny odpovídající manuálové stránky"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "vynutit kontrolu konzistence mezipaměti"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "nezkoušet podstránky, např. „man hokus pokus“ => „man hokus-pokus“"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Řízení formátovaného výstupu:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "ZOBRAZOVAČ"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "použít program ZOBRAZOVAČ k zobrazení výstupu"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "ŘETĚZEC"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "poskytne zobrazovací program „less“ s příkazovým řádkem"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "některé znaky latin1 zobrazovat přepisem do ASCII"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "vypnout dělní slov"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "vypnout zarovnávání"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -477,34 +477,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "používat program %s k formátování stránek"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "ZAŘÃZENÃ"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "používat program %s s vybraným zařízením"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "PROHLÎEČ"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "použít %s nebo PROHLÃŽEÄŒ k zobrazení výstupu v HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "ROZLIÅ ENÃ"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -512,82 +512,82 @@ msgstr ""
"použít program groff a zobrazit přes gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "použít program groff a přimět ho vytvořit ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Manuálová stránka pro %s nebyla nalezena\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Respektive, kterou manuálovou stránku z oddílu %s si přejete?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Kterou manuálovou stránku si přejete?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Manuálová stránka pro %s nebyla v oddíle %s nalezena\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Pokud nejsou manuálové stránky dostupné, použijte pro nápovědu „%s“.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ignoruje se neznámé předzpracování „%c“"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "%s nelze přejmenovat na %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "nelze nastavit Äas na %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "nelze smazat %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "nelze vytvoÅ™it doÄasný katalog pro %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "nelze vytvoÅ™it doÄasnou složku"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "nelze otevřít doÄasný soubor %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "nelze odstranit složku %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- následující: %s [zobrazit (enter) | pÅ™eskoÄit (Ctrl-D) | ukonÄit "
"(Ctrl-C)]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -596,27 +596,27 @@ msgstr ""
"\n"
"do %s nelze v režimu catman zapisovat"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "%s nelze převést na název katalogu"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: spoléhat se na to, co program whatis považuje za neschválené\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "program mandb skonÄil s návratovým kódem %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "interní chyba: kandidující typ %d je mimo rozsah"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Manuálová stránka "
@@ -629,108 +629,108 @@ msgstr "nelze zapisovat na standardní výstup"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: neúplný znak na konci vyrovnávací paměti"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KÓD[:…] -t KÓD [SOUBOR]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KÓD[:…]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "možná kódování originálního textu"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KÓD"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "kódování pro výstup"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produkovat méně varování"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "je nutné zadat vstupní kódování"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "je nutné zadat výstupní kódování"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[CESTA_K_MANUÃLOVÃM_STRÃNKÃM]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "pracovat tiše, s výjimkou „falešných“ varování"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "nehledat a nepřidávat do databáze bezprizorní katalogy"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "nemazat z databáze zastaralé záznamy"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "vytvořit pouze uživatelskou databázi"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "vytvořit databázi raději od píky, než ji aktualizovat"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "zkontrolovat, zda jsou manuálové stránky v pořádku"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "SOUBOR"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "aktualizovat jen záznam pro tento soubor"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "nelze odstranit soubor %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "nelze zapisovat do souboru %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "nelze Äíst ze souboru %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Zpracovávají se manuálové stránky ve složce %s…\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Odstraňuje se zastaralá složka katalogů %s…\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"varování: v souboru %s není direktiva MANDB_MAP, použije se program manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -738,7 +738,7 @@ msgstr[0] "%d manuálová podsložka obsahovala nové manuálové stránky.\n"
msgstr[1] "%d manuálové podsložky obsahovaly nové manuálové stránky.\n"
msgstr[2] "%d manuálových podsložek obsahovalo nové manuálové stránky.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
@@ -746,7 +746,7 @@ msgstr[0] "%d manuálová stránka byla přidána.\n"
msgstr[1] "%d manuálové stránky byly přidány.\n"
msgstr[2] "%d manuálových stránek bylo přidáno.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
@@ -754,7 +754,7 @@ msgstr[0] "Byl přidán %d bezprizorní katalog.\n"
msgstr[1] "Byly přidány %d bezprizorní katalogy.\n"
msgstr[2] "Bylo přidáno %d bezprizorních katalogů.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
@@ -762,219 +762,217 @@ msgstr[0] "Byl vymazán %d starý databázový záznam.\n"
msgstr[1] "Byly vymazány %d staré databázové záznamy.\n"
msgstr[2] "Bylo vymazáno %d starých databázových záznamů.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Nebyla vytvořena žádná databáze."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "ze souboru %s s nastavením nelze zjistit cesty k manuálovým stránkám"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "varování: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "varování: %s není složka"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "cesta k manuálovým stránkám je příliš dlouhá"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "varování: proměnná $PATH není nastavena"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "varování: prázdná proměnná $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "varování: promÄ›nná $MANPATH nastavena, na zaÄátek pÅ™idáno %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "varování: proměnná $MANPATH nastavena, na konec přidáno %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "varování: proměnná $MANPATH nastavena, vloženo %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "varování: proměnná $MANPATH nastavena, ignorováno %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "seznam složek „%s“ nelze zpracovat"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "nelze otevřít soubor %s s nastavením cest k manuálovým stránkám"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "varování: povinná složka %s neexistuje"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "nelze zjistit aktuální složku"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "varování: cesta %s nezaÄíná na %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "zobrazovat relativní cesty ke katalogům"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "zobrazovat celé globální cesty k manuálovým stránkám"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"varování: v souboru %s s nastavením nejsou nastaveny žádné globální cesty k "
"manuálovým stránkám"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "varování: %s je symbolický odkaz ukazující na neexistující soubor"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "cestu %s nelze zpracovat"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Kontrolují se bezprizorní katalogy ve složce %s…\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "varování: rejstřík %s nelze aktualizovat"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "stránka %s se odkazuje sama na sebe"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "KLÃÄŒOVÉ_SLOVO…"
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "PÅ™epínaÄ --regex je standardnÄ› zapnutý."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "vypisovat podrobné varovné zprávy"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "každé klíÄové slovo považovat za regulární výraz"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "každé klíÄové slovo hledat na pÅ™esnou shodu"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "klíÄové slovo (Äi slova) obsahují divoké znaky"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "požadovat shodu vÅ¡ech klíÄových slov"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "neořezávat výstup na šířku terminálu"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "prohledávat jen tyto oddíly (oddÄ›lené dvojteÄkou)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "definovat národní prostředí pro toto hledání"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "Co má příkaz %s provést?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "varování: %s obsahuje zacyklený ukazatel"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(neznámý předmět)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nic neodpovídá.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: požadavky .so se zanořily příliš hluboko nebo jsou rekurzivní"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: varování: selhal požadavek .so"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: varování: nový řádek v požadavku .so, ignorován"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: varování: vadný požadavek .lf, ignorován"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: varování: nový řádek v požadavku .lf, ignorován"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: nezakonÄené uvozovky v požadavku roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "pÅ™epínaÄ pro úÄely kompatibility (ignorován)"
+#~ msgid "manpath list too long"
+#~ msgstr "cesta k manuálovým stránkám je příliš dlouhá"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "nelze vytvoÅ™it doÄasnou složku"
diff --git a/po/da.gmo b/po/da.gmo
index 37110f45..8ba58585 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 54fed424..cd4a191a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-12 23:42+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -31,59 +31,54 @@ msgstr ""
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "kan ikke sætte effektivt uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "en manualbruger »%s« som er setuid findes ikke"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "kan ikke skifte ejer på %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatalt: regulært udtryk »%s«: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "multinøglen %s findes ikke"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "kan ikke låse indekscachen %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "indekscachen %s er ødelagt"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "kan ikke erstatte nøglen %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "kun %d felt i indhold"
msgstr[1] "kun %d felter i indhold"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "fejlagtig hentning på multinøgle %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Databasen %s er beskadiget; genopbyg med mandb --create"
@@ -103,64 +98,64 @@ msgstr "advarsel: %s er version %s, %s forventes\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatalt: kan ikke indsætte versionsidentifikator i %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MANUALDATABASE]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Manualdatabasen er som standard %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "vis fejlsøgningsbeskeder"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "kan ikke åbne %s for læsning"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[AFSNIT...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "STI"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "angiv søgesti for manualsider med STI"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FIL"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "brug denne brugers konfigurationsfil"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "man-kommandoen mislykkedes med slutstatus %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "kan ikke læse databasen %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "NULL-indhold for nøgle: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -169,120 +164,125 @@ msgstr ""
"\n"
"Opdaterer katalogfiler for afsnit %s i man-hierarkiet %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "kan ikke skrive indenfor %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "kan ikke opdatere %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "advarsel: %s/man%s/%s.%s*: filendelser i konflikt"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "kan ikke opdatere indekscachen %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "advarsel: %s: fejlagtig symbolsk lænke eller ROFF ».so-anmodning«"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "advarsel: %s: ignorerer tom fil"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "advarsel: %s: whatis-tolkning for %s(%s) mislykkedes"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "kan ikke søge i kataloget %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "kan ikke skifte ejer på %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "advarsel: kan ikke oprette katalogmappe %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "kan ikke ændre rettigheder på %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "kan ikke skifte til kataloget %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "kan ikke oprette indekscachen %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Opdaterer indekscache for søgestien »%s/%s«. Vent..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "færdig.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Tømmer gamle databaseindgange i %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "advarsel: det mislykkedes at lagre indgang for %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "advarsel: %s: ignorerer fejlagtigt filnavn"
# Koden tyder på, det er betegnelsen på tre separate argumenter, derfor:
# "STI AFSNIT NAVN"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "STI AFSNIT NAVN"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "FILENDELSE"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "begræns søgning til filendelser med typen FILENDELSE"
# evt. "med versalfølsomhed slået fra"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "se efter sider uden at være versalfølsom (standard)"
# "med versalfølsomhed slået til"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "se efter sider versalfølsomt"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "fortolk sidenavn som et regulært udtryk"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "sidenavnet indeholder jokertegn"
@@ -293,199 +293,199 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "advarsel: whatis for %s overskrider %d byte, forkorter."
msgstr[1] "advarsel: whatis for %s overskrider %d byte, forkorter."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "kan ikke åbne %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FIL..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Standarderne er --man og --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "fortolk som en manualside"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "fortolk som en katalogside"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "vis whatis-information"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "vis gættet serie af forhåndsbehandlede filtre"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KODNING"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "brug valgt uddatakodning"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: inkompatible tilvalg"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "kommandoen afsluttede med status %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[AFSNIT] SIDE..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "nulstil alle tilvalg til deres standardværdier"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "ADVARSLER"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "aktiver advarsler fra groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Hovedtilstande for handling:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "svarende til whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "svarende til apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "søg efter tekst på alle sider"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "vis fysisk placering af manualsider"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "vis fysisk placering af katalogfiler"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "fortolk SIDE-argumenter som lokale filnavne"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
"bruges af katalogmanual til at omformatere katalogsider der skal opdateres"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "uddatakildeside kodet i KODNING"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Finder manualsider:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "SPROG"
# denne specifikke
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "definere sproget for netop denne manualsøgning"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "brug manualsider fra andre systemer"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTE"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "brug kolonadskilt afsnitsliste"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "vis alle sider der matcher regulært udtryk"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "vis alle sider der matcher jokertegn"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr "få --regex og --wildcard til at finde sidenavne og ikke beskrivelser"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "find alle matchende manualsider"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "fremtving konsistenskontrol af mellemlager"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "forsøg ikke med undersider, f.eks. »man foo bar« => »man foo-bar«"
# "Kontrollerer formaterede uddata:"
# Det er en slags overskrift, så:
# "Tilvalg for formateret uddata"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Tilvalg for formateret uddata:"
# Der menes nok et program som less. Ordlisten foreslår bl.a. "tekstviser"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "TEKSTVISER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "brug programmet TEKSTVISER til at vise uddata"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "STRENG"
# dette er hjælpeteksten til tilvalget -r til ma
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "brug tekstviseren »less« med den angivne prompt"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "vis ASCII-oversættelse af visse latin1-tegn"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "brug ikke orddeling"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "brug ikke justering"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -495,34 +495,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "brug %s til formatsider"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "ENHED"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "brug %s med valgt enhed"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "BROWSER"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "brug %s eller BROWSER til at vise HTML-uddata"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "OPLØSNING"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -530,81 +530,81 @@ msgstr ""
"brug groff og vis igennem gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "brug groff og tving den til at producere ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Ingen manualindgang for %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Eller hvilken manualside vil du have fra afsnit %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Hvilken manualside vil du have?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Ingen manualindgang for %s i afsnit %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Se »%s« for hjælp når manualsider ikke er tilgængelige.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ignorerer ukendt forbehandler »%c«"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "kan ikke omdøbe %s til %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "kan ikke sætte tider på %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "kan ikke aflænke %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "kan ikke oprette midlertidigt katalog for %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "kan ikke oprette midlertidig mappe"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "kan ikke åbne midlertidig fil %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "kan ikke fjerne kataloget %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- næste: %s [ vis (retur) | overspring (Ctrl-D) | afslut (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -613,27 +613,27 @@ msgstr ""
"\n"
"kan ikke skrive til %s i tilstanden katalogmanual"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Kan ikke konvertere %s til katalognavn"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: at stole på whatis-referencer er forældet\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb-kommandoen mislykkedes med slutstatus %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "intern fejl: kandidattype %d uden for gyldigt interval"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Manualside "
@@ -646,346 +646,344 @@ msgstr "kan ikke skrive til standarduddata"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: ufuldstændigt tegn ved slutningen af mellemlageret"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KODNING[:...] -t KODNING [FILNAVN]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KODNING[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "mulige kodninger af oprindelig tekst"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KODNING"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "kodning for uddata"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "giv færre advarsler"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "inddatakodning skal angives"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "uddatakodning skal angives"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANSTI]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "arbejd stille, undtagen for »bogus-advarsler«"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "kig ikke efter og tilføj ikke vildfarne katalogsider til databaserne"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "afinstaller ikke forældede punkter fra databaserne"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "producer kun brugerdatabaser"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "opret databaser fra bunden af i stedet for at opdatere"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "kontroller manualsider for korrekthed"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "FILNAVN"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "opdater kun punktet for dette filnavn"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "kan ikke fjerne %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "kan ikke skrive til %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "kan ikke læse fra %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Bearbejder manualsider under %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Fjerner forældet katalogside %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "advarsel: intet MANDB_MAP-direktiv i %s, bruger din manualsøgesti"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d manualunderkatalog indeholdt nyere manualsider.\n"
msgstr[1] "%d manualunderkataloger indeholdt nyere manualsider.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d manualside blev tilføjet.\n"
msgstr[1] "%d manualsider blev tilføjet.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d vildfaren katalogside blev tilføjet.\n"
msgstr[1] "%d vildfarne katalogsider blev tilføjet.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d gammel databaseindgang blev tømt.\n"
msgstr[1] "%d gamle databaseindgange blev tømt.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Ingen databaser er oprettet."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "kan ikke forstå konfigurationsfilen for manualsøgesti %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "advarsel: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "advarsel: %s er ikke et katalog"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "manualsøgesti-liste er for lang"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "advarsel: $PATH er ikke sat"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "advarsel: tom $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "advarsel: $MANPATH er sat, tilføjer %s før"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "advarsel: $MANPATH er sat, tilføjer %s efter"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "advarsel: $MANPATH er sat, indsætter %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "advarsel: $MANPATH er sat, ignorerer %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "kan ikke tolke mappeliste »%s«"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "kan ikke åbne konfigurationsfilen for manualsøgesti %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "advarsel: det obligatoriske katalog %s findes ikke"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "kan ikke bestemme aktuelt katalog"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "advarsel: %s begynder ikke med %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "vis relative katalogstier"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "vis den samlede globale manualsti"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"advarsel: ingen globale manualsøgestier angivet i konfigurationsfilen %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "advarsel: %s er en vildfaren symbolsk lænke"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "kan ikke slå %s op"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Undersøger vildfarne katalogsider under %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "advarsel: kan ikke opdatere indekscachen %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s refererer til sig selv"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "NØGLEORD..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Tilvalget --regex er aktiveret som standard."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "vis uddybende advarselsbeskeder"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "fortolk hvert nøgleord som et regulært udtryk"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "søg i hvert nøgleord for nøjagtigt match"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "nøgleordene indeholder jokertegn"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "alle nøgleord skal matche"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "tilpas ikke uddata til terminalbredde"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "søg kun i disse afsnit (kolonadskilt)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "definer sproget for denne søgning"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s hvad?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "advarsel: %s indeholder en pegerløkke"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(ukendt emne)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: ingenting egnet.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so-forespørgsler er indlejret for dybt eller rekursivt"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: advarsel: .so-forespørgsel mislykkedes"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: advarsel: linjeskift i .so-forespørgsel; ignorerer"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: advarsel: forkert udformet .lf-forespørgsel; ignorerer"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: advarsel: linjeskift i .lf-forespørgsel; ignorerer"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: ikke afsluttet anførelsestegn i roff-forespørgsel"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "skift af kompatibilitet (ignoreret)"
+#~ msgid "manpath list too long"
+#~ msgstr "manualsøgesti-liste er for lang"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "kan ikke gendanne tidligere arbejdsmappe"
diff --git a/po/de.gmo b/po/de.gmo
index d5d93382..c1923b5f 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 80e403b3..484bed1a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-12 16:39+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -25,59 +25,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.11\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "Effektive Benutzerkennung kann nicht gesetzt werden"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "Der von »man« verwandte Benutzer »%s« existiert nicht"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "Besitzer und/oder Gruppe von %s können nicht geändert werden"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "Fatal: Suchausdruck »%s«: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "Suchschlüssel %s existiert nicht"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "Indexcache %s kann nicht gesperrt werden"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "Indexcache %s fehlerhaft"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "Schlüssel %s kann nicht ersetzt werden"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "nur %d Feld im Inhalt enthalten"
msgstr[1] "nur %d Felder im Inhalt enthalten"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "Suchschlüssel %s kann nicht eingelesen werden"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Datenbank %s beschädigt; mit »mandb --create« neu erstellen"
@@ -97,64 +92,64 @@ msgstr "Warnung: %s hat Versionsnummer %s, erwartet wurde %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "Fatal: Versionsnummer konnte nicht in %s eingefügt werden"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[HANDBUCHDATENBANK]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Die Handbuchdatenbank benutzt standardmäßig %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "Hinweise zur Fehlersuche werden ausgegeben"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "%s kann nicht zum Lesen geöffnet werden"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[ABSCHNITT ...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "PFAD"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "Suchpfad für Handbuchseiten auf PFAD setzen"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "DATEI"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "diese Benutzerkonfigurationsdatei verwenden"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "Man-Befehl schlug mit Exit-Status %d fehl"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "Datenbank %s kann nicht gelesen werden"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Inhalt für Suchschlüssel ist NULL: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -164,118 +159,123 @@ msgstr ""
"»cat«-Dateien des Abschnitts %s der Handbuchhierarchie %s werden "
"aktualisiert.\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "innerhalb von %s kann nicht geschrieben werden"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "%s kann nicht aktualisiert werden"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "Warnung: %s/man%s/%s.%s*: konkurrierende Dateierweiterungen"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "Indexcache %s kann nicht aktualisiert werden"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
"Warnung: %s: ungültige symbolische Verknüpfung oder »roff«-».so«-Anfrage"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "Warnung: %s: leere Datei wird ignoriert"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "Warnung: %s: whatis-Verarbeitung für %s(%s) fehlgeschlagen"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "Verzeichnis %s kann nicht durchsucht werden"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "Besitzer und/oder Gruppe von %s können nicht geändert werden"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "Warnung: »cat«-Verzeichnis %s kann nicht angelegt werden"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "Zugriffsrechte von %s können nicht geändert werden"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "Es konnte nicht ins Verzeichnis %s gewechselt werden"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "Indexcache %s kann nicht erzeugt werden"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Indexcache des Pfades »%s/%s« wird aktualisiert. Bitte warten ..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "fertig.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Alte Datenbankeinträge in %s werden gelöscht ...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "Warnung: Eintrag für (%s)%s konnte nicht abgelegt werden"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "Warnung: %s: fehlerhafter Dateiname wird ignoriert"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "PFAD ABSCHNITT NAME"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "ERWEITERUNG"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "Suche auf Erweiterungstyp ERWEITERUNG beschränken"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
"Nach Seiten suchen ohne Groß- und Kleinschreibung zu beachten (Standard)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "Nach Seiten unter Beachtung von Groß- und Kleinschreibung suchen"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "jeden Seitennamen als RegEx interpretieren"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "der Seitenname enthält Platzhalter"
@@ -288,199 +288,199 @@ msgstr[0] ""
msgstr[1] ""
"Warnung: whatis-Eintrag für %s ist größer als %d Bytes, verkürze ihn."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "%s kann nicht geöffnet werden"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "DATEI ..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Die Standards sind »--man« und »--whatis«."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "als Handbuchseite verarbeiten"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "als »cat«-Seite verarbeiten"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "whatis-Informationen anzeigen"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "vermutete Serie der Vorverarbeitungsfilter anzeigen"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KODIERUNG"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "ausgewählte Ausgabekodierung verwenden"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: inkompatible Optionen"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "Befehl mit Exit-Status %d beendet: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[ABSCHNITT] SEITE ..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "Alle Optionen auf ihre Standardwerte zurücksetzen"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "WARNUNGEN"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "groff-Warnungen aktivieren"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Hauptbetriebsmodi:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "Ersatz für »whatis«"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "Ersatz für »apropos«"
# (mes) NEU
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "Text in allen Seiten suchen"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "Speicherort der Handbuchseite(n) ausgeben"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "Speicherort der »cat«-Datei(en) ausgeben"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "SEITEN-Argument(e) als lokale(n) Dateinamen interpretieren"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "von »catman« verwendet um veraltete »cat«-Seiten neu zu formatieren"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "Quellseiten mit KODIERUNG kodiert ausgeben"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Handbuchseiten finden: "
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "Locale für diese spezielle Handbuchsuche definieren"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "Handbuchseiten von anderen Systemen verwenden"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTE"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "kommaseparierte Abschnittsliste verwenden"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "alle mit dem regulären Ausdruck übereinstimmenden Seiten anzeigen"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "alle mit dem Platzhalter übereinstimmenden Seiten anzeigen"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"»--regex« und »--wildcard« werden nur gegen den Seitennamen geprüft, nicht "
"die Beschreibungen"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "alle übereinstimmenden Handbuchseiten finden"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "Konsistenzkontrolle des Caches erzwingen"
# (mes) neu
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
"keine Unterseiten versuchen, zum Beispiel »man foo bar« => »man foo-bar«"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Formatierte Ausgabe kontrollieren:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "ANZEIGEPROGRAMM"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "ANZEIGEPROGRAMM zur Darstellung der Ausgabe verwenden"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "ZEICHENKETTE"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "das »less«-Anzeigeprogramm mit einer Eingabeaufforderung ausstatten"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "ASCII-Ãœbersetzungen einiger Latin1-Zeichen anzeigen"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "Silbentrennung abschalten"
# (mes) Was trifft es: Ausrichtung, Begründung, Blocksatz, Einstellung,
# Justierung, Rechtfertigung
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "Blocksatz abschalten"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -490,34 +490,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "%s zur Seitenformatierung verwenden"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "GERÄT"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "%s mit ausgewähltem Gerät verwenden"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "BROWSER"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "%s oder BROWSER zur Anzeige von HTML-Ausgabe verwenden"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "AUFLÖSUNG"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -525,84 +525,84 @@ msgstr ""
"»groff« verwenden und mit »gxditview« (X11) anzeigen:\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "»groff« verwenden und ditroff-Ausgabe erzwingen"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Kein Handbucheintrag für %s vorhanden\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr ""
"(Welche Handbuchseiten wollen Sie aus Abschnitt %s alternativ haben?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Welche Handbuchseiten möchten Sie haben?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Kein Handbucheintrag für %s im Abschnitt %s vorhanden\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Siehe auch »%s« für Hilfe, wenn Handbuchseiten nicht verfügbar sind.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "Ignoriere unbekannten Präprozessor »%c«"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "%s kann nicht in %s umbenannt werden"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "Es können keine Zeiten für %s gesetzt werden"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "%s kann nicht gelöscht werden"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "Es kann keine temporäre »cat«-Datei für %s erzeugt werden"
# (mes) NEU
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "Temporäres Verzeichnis kann nicht erzeugt werden."
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "Temporäre Datei %s kann nicht geöffnet werden"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "Verzeichnis %s kann nicht entfernt werden"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- nächste: %s [ Anzeigen (Return) | Überspringen (Strg+D) | Beenden "
"(Strg+C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -611,27 +611,27 @@ msgstr ""
"\n"
"im »catman«-Modus kann nicht nach %s geschrieben werden"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "%s kann nicht in »cat«-Namen umgewandelt werden"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: es wird davon abgeraten, auf »whatis«-Referenzen zu vertrauen\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "»mandb«-Befehl schlug fehl mit Beendigungs-Status %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "interner Fehler: Kandidatentyp %d außerhalb des Bereichs"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Handbuchseite "
@@ -644,349 +644,347 @@ msgstr "es kann nicht nach Standardausgabe geschrieben werden"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: unvollständiges Zeichen am Ende des Puffers"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KODIERUNG[: ...] -t KODIERUNG [DATEINAME]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KODIERUNG[: ...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "mögliche Kodierungen des Originaltextes"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KODIERUNG"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "Kodierung der Ausgabe"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "weniger Warnungen erzeugen"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "es muss eine Eingabekodierung angegeben werden"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "es muss eine Ausgabekodierung angegeben werden"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[HANDBUCHPFAD]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "still arbeiten, mit Ausnahme von »fehlerhaften« Warnungen"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr ""
"nicht nach herrenlosen »cat«-Datein suchen oder zu den Datenbanken hinzufügen"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "keine veralteten Einträge aus den Datenbanken löschen"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "nur Benutzerdatenbanken erzeugen"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "Datenbanken von Grund auf neu generieren, statt sie zu aktualisieren"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "Handbuchseiten auf Korrektheit überprüfen"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "DATEINAME"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "nur den Eintrag für diesen Dateinamen aktualisieren"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "%s kann nicht entfernt werden"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "es kann nicht nach %s geschrieben werden"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "%s kann nicht ausgelesen werden"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Handbuchseiten unter %s werden verarbeitet ...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "veraltetes »cat«-Verzeichnis %s wird entfernt ...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"Warnung: keine MANDB_MAP-Anweisungen in %s, ihr Handbuchpfad wird verwendet"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d Handbuchverzeichnis enthielt neuere Handbuchseiten.\n"
msgstr[1] "%d Handbuchverzeichnisse enthielten neuere Handbuchseiten.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d Handbuchseite wurde hinzugefügt.\n"
msgstr[1] "%d Handbuchseiten wurden hinzugefügt.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d herrenlose »cat«-Datei wurde hinzugefügt.\n"
msgstr[1] "%d herrenlose »cat«-Dateien wurden hinzugefügt.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d alter Datenbankeintrag wurde entfernt.\n"
msgstr[1] "%d alte Datenbankeinträge wurden entfernt.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Keine Datenbanken erstellt."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "Die Handbuchpfad-Konfigurationsdatei %s kann nicht ausgewertet werden."
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "Warnung: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "Warnung: %s ist kein Verzeichnis"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "Handbuchpfad-Liste zu lang"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "Warnung: $PATH nicht gesetzt"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "Warnung: $PATH ist leer"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "Warnung: $MANPATH ist gesetzt, füge vorn %s an"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "Warnung: $MANPATH ist gesetzt, hänge %s an"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "Warnung: $MANPATH ist gesetzt, füge %s ein"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "Warnung: $MANPATH ist gesetzt, ignoriere %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "Verzeichnisliste »%s« kann nicht verarbeitet werden"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "Handbuchpfad-Konfigurationsdatei %s kann nicht geöffnet werden"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "Warnung: erforderliches Verzeichnis %s existiert nicht"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "momentanes Verzeichnis kann nicht festgestellt werden"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "Warnung: %s fängt nicht mit %s an"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "relative »cat«-Pfade anzeigen"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "den gesamten globalen Handbuchpfad (MANPATH) anzeigen"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"Warnung: Keine globalen Handbuchpfade (MANPATH) in Konfigurationsdatei %s "
"gesetzt"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "Warnung: %s ist eine freihängende symbolische Verknüpfung"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "%s kann nicht aufgelöst werden"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Handbuchseiten ohne »cat«-Dateien in %s werden gesucht ...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "Warnung: Indexcache %s kann nicht aktualisiert werden"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s bezieht sich auf sich selbst"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "SCHLÃœSSELWORT ..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Die »--regex«-Option ist standardmäßig aktiviert."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "ausführliche Warnmeldungen anzeigen"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "jedes Schlüsselwort als RegEx interpretieren"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "mit jedem Schlüsselwort nach exakten Treffern suchen"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "das bzw. die Schlüsselwort(e) enthalten Platzhalter"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "alle Schlüsselwörter müssen übereinstimmen"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "Ausgabe nicht an Terminalbreite anpassen"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "nur diese Abschnitte durchsuchen (durch Doppelpunkte getrennt)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "Locale für diese Suche definieren"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s was bitte?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "Warnung: %s enthält zyklische Verweise"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(unbekanntes Thema)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nichts passendes.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: ».so«-Anfragen sind zu tief verschachtelt oder rekursiv"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: Warnung: ».so«-Anfrage fehlgeschlagen"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: Warnung: Zeilenumbruch in ».so«-Anfrage; ignoriert"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: Warnung: falsch formatierte ».lf«-Anfrage; ignoriert"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: Warnung: Zeilenumbruch in ».lf«-Anfrage; ignoriert"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: nicht geschlossene Anführungszeichen in »roff«-Anfrage"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "Kompatibilitätsparameter (ignoriert)"
+#~ msgid "manpath list too long"
+#~ msgstr "Handbuchpfad-Liste zu lang"
+
# (mes) NEU
#~ msgid "can't restore previous working directory"
#~ msgstr "Vorheriges Arbeitsverzeichnis kann nicht wiederhergestellt werden."
diff --git a/po/eo.gmo b/po/eo.gmo
index 8028aea7..c408482d 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 11698dbd..5073d87c 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-06-05 23:10-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Generator: Poedit 1.5.4\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "ne eblas difini la faktan uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "la man-uzanto kun setuid \"%s\" ne ekzistas"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "ne eblas apliki chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "neriparebla: regex '%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "plur-Ålosilo %s ne ekzistas"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "ne eblas Ålosi la indeksan kaÅmemoron %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "la indeksa kaÅmemoro %s fuÅas"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "ne eblas anstataÅ­igi la Ålosilon %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "nur %d kampo en enhavo"
msgstr[1] "nur %d kampoj en enhavo"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "malÄusta havigo per plur-Ålosilo %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "La datumbazon %s fuÅas; rekonstruu per mandb --create"
@@ -91,64 +86,64 @@ msgstr "averto: %s estas versio %s, ni atendas %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "neripareble: ne eblas enmeti versi-identiganton en %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN-DATUMBAZO]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "La man-datumbazo apriore estas %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "sendi rafinigajn mesaÄojn"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "ne eblas malfermi %s por legi"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SEKCIO...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "VOJO"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "difini serĉvojo por manlibraj paÄoj al VOJO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "DOSIERO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "uzi tiun ĉi uzant-agorda dosiero"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "komando man fiaskis kun elir-stato %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "ne eblas legi la datumbazon %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Enhavo NULL por Ålosilo: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"Äœisdatigo de cat-dosieroj por sekcio %s de man-hierarkio %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "ne eblas skribi ene de %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "Ne eblas Äisdatigi %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "averto: %s/man%s/%s.%s*: konkurantaj sufiksoj"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "ne eblas Äisdatigi la indeksan kaÅmemoron %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "averto: %s: malÄusta symlink aÅ­ peto de ROFF '.so'"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "averto: %s: ni preteratentas malplenan dosieron"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "averto: %s: analizo de whatis por %s(%s) fiaskis"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "ne eblas serĉi la dosierujon %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "ne eblas apliki chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "averto: ne eblas krei la catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "ne eblas apliki chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "ne eblas ÅanÄi al la dosierujo %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "ne eblas krei la indeksan kaÅmemoron %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Äœisdatigo de indeksa kaÅmemoro por la vojo '%s/%s'. Atendu..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "farite.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "ViÅo de malnovaj datumbazaj enigoj en %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "averto: fiasko dum konservo de elemento por %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "averto: %s: ni preteratentas aĉan dosiernomon"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "VOJO SEKCIO NOMO"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "SUFIKSO"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "limigi serĉon al la sufiksa tipo SUFIKSO"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "serĉi paÄojn sen-usklece (aprioras)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "serĉi paÄojn usklece"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreti paÄ-nomon kiel regulesprimon"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "la paÄ-nomo enhavas ĵokerojn"
@@ -277,193 +277,193 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "averto: whatis por %s troigas %d bajton, ni tranĉas."
msgstr[1] "averto: whatis por %s troigas %d bajtojn, ni tranĉas."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "ne eblas malfermi %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "DOSIERO..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "La aprioroj estas --man kaj --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "analizi kiel man-paÄo"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "analizi kiel cat-paÄo"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "montri informon de whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "montri supozitan serion da antaÅ­procezaj filtriloj"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "ENKODIGO"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "uzi la elektitan eligan enkodigon"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: nekongruaj modifiloj"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "komando ĉesis kun stato %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SEKCIO] PAÄœO..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "redifini ĉiujn modifilojn al iliaj aprioraj valoroj"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVERTOJ"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "ebligi avertojn el groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Ĉefaj reÄimoj de operacio:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "samfunkcia al whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "samfunkcia al apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "serĉi tekston en ĉiuj paÄoj"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "montri fizikan lokon de man-paÄo(j)"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "montri fizikan lokon de cat-dosiero(j)n"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreti argumento(j)n de PAÄœO kiel loka(j)n dosiernomo(j)n"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "uzata de catman por restrukturigi malaktualajn cat-paÄojn"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "eligi font-paÄon enkoditan laÅ­ ENKODIGO"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Trovo de manlibraj paÄoj:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOKAÄ´ARO"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "difini la lokaĵaron por tiu ĉi specifa serĉo de man"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEMO"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "uzi manlibrajn paÄojn el aliaj sistemoj"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTO"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "uzi dupunkto-apartitan sekcio-liston"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "montri ĉiujn paÄojn kongruajn al regulesprimo"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "montri ĉiujn paÄojn kongruajn al ĵokero"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"igi ke --regex kaj --wildcard kongruu nur al paÄ-nomoj, ne al priskriboj"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "trovi ĉiujn kongruajn manlibrajn paÄojn"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "devigi kontrolon pri kaÅmemora kohero"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "ne provi subpaÄojn, ekz 'man foo bar' => 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Regado de strukturita eligo:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAÄœILO"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "uzi la programon PAÄœILO por montri eligon"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "ĈENO"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "provizi komandinviton al la paÄilo 'less'"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "montri mapigon ASCII por kelkaj signoj latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "malaktivigi vorto-dividon"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "malaktivigi Äisrandigon"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -473,34 +473,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "uzi %s por strukturigi paÄojn"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "APARATO"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "uzi %s kun elektita aparato"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "FOLIUMILO"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "uzi %s aÅ­ FOLIUMILO por montri eligon HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "DISTINGIVO"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -508,81 +508,81 @@ msgstr ""
"uzi groff kaj montri per gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "uzi groff kaj devigi Äin produkti ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Neniu manlibra elemento por %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Alternative, kiun manlibran paÄon vi volas el sekcio %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Kiun manlibran paÄon vi volas?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Neniu manlibra elemento por %s en sekcio %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Konsultu '%s' por helpo kiam manlibraj paÄoj ne disponeblas.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ni preteratentas nekonatan antaÅ­procezilon '%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "ne eblas renomigi %s al %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "ne eblas difini horon en %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "ne eblas forigi %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "ne eblas krei provizoran cat por %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "ne eblas krei provizoran dosierujon"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "ne eblas malfermi la provizoran dosieron %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "ne eblas forigi la dosierujon %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- sekva: %s [ vidi (enigklavo) | salti (Ctrl-D) | eliri (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -591,27 +591,27 @@ msgstr ""
"\n"
"ne eblas skribi al %s sub reÄimo catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Ne eblas konverti %s al cat-nomo"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: fini je whatis refs estas malrekomendinde\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "komando mandb fiaskis kun elir-stato %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "interna eraro: kanditata tipo %d estas for de intervalo"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Manlibra paÄo "
@@ -624,345 +624,343 @@ msgstr "ne eblas skribi al la ĉefeligujo"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: nekompleta signo ĉe fino de bufro"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KODO[:...] -t KODO [DOSIERNOMO]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KODO[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "eblaj enkodigoj de la originala teksto"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KODO"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "enkodigo por eligo"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produkti malpli da avertoj"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "devas indiki enigan enkodigon"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "devas indiki eligan enkodigon"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MAN-VOJO]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "labori kviete, krom por averto pri 'aĉeco'"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "ne serĉi aŭ aldoni perditajn dosierojn cat al la dbs"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "ne forpurigi malaktualajn elementojn el la dbs"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produkti nur datumbazojn de uzantoj"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "krei datumbazon elkomence, prefere ol Äisdatigante"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "kontroli korektecon de manlibraj paÄoj"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "DOSIERNOMO"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "Äisdatigi nur la elementon por tiu ĉi dosiernomo"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "ne eblas forigi %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "ne eblas skribi al %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "ne eblas legi el %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Procezado de manlibraj paÄoj sub %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Forigado de malaktuala cat-dosierujo %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "averto: neniu instrukcio MANDB_MAP en %s, ni uzas vian man-vojon"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d man-subdosierujo enhavis pli novajn manlibrajn paÄojn.\n"
msgstr[1] "%d man-subdosierujoj enhavis pli novajn manlibrajn paÄojn.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d manlibra paÄo estis aldonata.\n"
msgstr[1] "%d manlibraj paÄoj estis aldonataj.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d perdita cat estis aldonata.\n"
msgstr[1] "%d perditaj cat estis aldonataj.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d malnova datumbaza elemento estis forpurigata.\n"
msgstr[1] "%d malnovaj datumbazaj elementoj estis forpurigataj.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Neniu datumbazo estis kreata."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "ne eblas kompreni la man-vojan agordan dosieron %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "averto: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "averto: %s ne estas dosierujo"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "man-voja listo tro longas"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "averto: $PATH ne estas difinita"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "averto: malplena $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "averto: $MANPATH estas difinita, ni antaÅ­metas %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "averto: $MANPATH estas difinita, ni postmetas %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "averto: $MANPATH estas difinita, ni enmetas %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "averto: $MANPATH estas difinita, ni preteratentas %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "ne eblas analizi dosierujan liston '%s'"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "ne eblas malfermi la man-vojan agordan dosieron %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "averto: la deviga dosierujo %s ne ekzistas"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "ne eblas determini la nunan dosierujon"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "averto: %s ne komenciÄas per %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "montri relativajn cat-vojojn"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "montri la tutan mallokan man-vojon"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "averto: neniu malloka man-vojo estas difinita en la agorda dosiero %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "averto: %s estas sentrafa simbol-ligilo"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "ne eblas solvi %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Kontrolo pri perditaj cat sub %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "averto: ne eblas Äisdatigi la indeksan kaÅmemoron %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s estas mem-referenca"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "ÅœLOSILVORTO..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "La modifilo --regex estas ebligita apriore."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "montri detaligajn avertajn mesaÄojn"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreti ĉiun Ålosilvorton kiel regulesprimon"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "serĉi ĉiun Ålosilvorton por entuta kongruo"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "la Ålosilvorto(j) enhavas ĵokerojn"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "postuli ke ĉiuj Ålosilvortoj kongruu"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "ne adapti eligon al la terminala larÄo"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "serĉi nur tiujn ĉi sekciojn (dupunkt-apartite)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "difini la lokaĵaron por tiu ĉi serĉo"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s kio?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "averto: %s enhavas adresmontrilan ciklon"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(nekonata temo)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nenio taÅ­ga.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: petoj .so estas nestitaj tro profunde aŭ estas rekursigaj"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: averto: peto .so fiaskis"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: averto: novlinio en peto .so, ni preteratentas"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: averto: misformita peto .lf, ni preteratentas"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: averto: novlinio en peto .lf, ni preteratentas"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: nefinigita citilo en peto roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "kongrueca aktivigilo (preteratentita)"
+#~ msgid "manpath list too long"
+#~ msgstr "man-voja listo tro longas"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "ne eblas restarigi antaÅ­an kurantan dosierujon"
diff --git a/po/es.gmo b/po/es.gmo
index fcc5f9b6..1425c3b0 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index a9371c5f..3bdbf77a 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-02-27 15:52+0100\n"
"Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "no se puede asignar el uid efectivo"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "el usuario setuid a man «%s» no existe"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "no se puede cambiar propietario con chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "error fatal: regex `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "la clave múltiple %s no existe"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "no se puede bloquear el caché de índices %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "caché de índices %s corrompido"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "no se puede reemplazar la clave %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "únicamente en %d campo en el contenido"
msgstr[1] "únicamente en %d campos en el contenido"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "no se ha obtener en clave múltiple %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Base de datos %s corrompida; reconstrúyala con mandb --create"
@@ -91,64 +86,64 @@ msgstr "aviso: %s tiene la versión %s, aunque se esperaba %s.\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: no se puede insertar identificador de versión dentro de %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN BASEDATOS]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "La base de datos predeterminadoa a %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "emite mensajes de depuración"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "no se puede abrir %s para leer"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECCIÓN...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "RUTA"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "establece ruta de búsqueda para páginas del manual a ruta PATH"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FICHERO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "emplee este fichero de configuración de usuario"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "orden man fallada con estado de salida %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "no se puede leer la base de datos %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Contenido NULO para clave: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"Actualizando los ficheros cat para la sección %s de la jerarquía de man %s.\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "no se puede escribir en %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "incapaz de actualizar %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "aviso: %s/man%s/%s.%s*: extensiones en conflicto"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "no se puede actualizar el caché de índices %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "aviso: %s: enlace simbólico o solicitud `.so' de ROFF defectuoso"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "aviso: %s: ignorando fichero vacío"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "aviso: %s: ha fallado la exploración de whatis para %s(%s)"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "no se puede buscar en el directorio %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "no se puede cambiar propietario con chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "aviso: no se pudo crear directorio para «cat» %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "no se puede ejecutar el chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "no se puede cambiar al directorio %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "no se puede crear el caché de índices %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Actualizando el caché de índices para la ruta `%s/%s'. Aguarde..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "terminado.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Purgando entradas antiguas en la base de datos en %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "aviso: ha fallado al almacenar entrada para %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "aviso: %s: ignorando nombre espurio de fichero"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "NOMBRE SECCIONAL ENRUTADO"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSIÓN"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "búsqueda limitada para tipo de extensión EXTENSION"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "busca páginas no distinguible de mayúsculas (predeterminado)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "busca páginas distinguiendo mayúsculas"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreta nombre de página como un expreg"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "el nombre de la página contiene comodines"
@@ -277,194 +277,194 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "aviso: whatis para %s excede de %d byte, truncando."
msgstr[1] "aviso: whatis para %s excede de %d bytes, truncando."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "no se puede abrir %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FICHERO..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Los predeterminados son --man y --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "interpreta como página man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "interpreta como página cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "muestra información whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "muestra series adivinadas de filtros de preprocesado"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODIFICACIÓN"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "emplee salida codificada seleccionada"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: opciones incompatibles"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "la orden salió con estado %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECCIÓN] PÃGINA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "restablece todas las opciones a sus valores predeterminados"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVISO"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "activa avisos desde groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Modos principales de operación:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "equivalente a whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "equivalente a propósito"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "busca para texto dentro de todas las páginas"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "escribe localización física de página(s) man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "escribe localización física de fichero(s) cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreta argumento(s) PAGE como nombre(s) de fichero(s) local(es)"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "empleado por catman para reformatear fuera de fechas de páginas cat"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "página origen codificada por salida en codificación ENCODING"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Encontrando páginas del manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "define la localización para esta búsqueda de man particular"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "emplea páginas del manual desde otros sistemas"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTADO"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "emplea el punto y coma separando lista de sección"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "muestra todas las páginas coincidentes con expreg"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "muestra todas las páginas coincidentes con comodín"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"make --regex y --wildcard coincide nombres de página exclusiva, no "
"descripciones"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "encuentra todas las páginas del manual coincidentes"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "fuerza una comprobación de caché consistente"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "no intenta subpáginas, p. e. 'man foo bar' → 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Controlando formateado de salida:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGINADOR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "emplea paginador PAGER de programa para enseñar la salida"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CADENA TEXTUAL"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "proporciona el paginador «less» con una petición"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "enseña traslado de ASCII de ciertos caracteres latín1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "apaga guión"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "apaga justificación"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -474,34 +474,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "emplee %s para formato de páginas"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "DISPOSITIVO"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "emplee %s con dispositivo seleccionado"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "EXPLORADOR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "emplea %s o explorador BROWSER para enseñar salida HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUCIÓN"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -509,82 +509,82 @@ msgstr ""
"emplea groff y enseña a través de gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "utiliza groff y lo fuerza para producir ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Ninguna entrada del manual para %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr ""
"(Alternativamente, ¿cual página de manual quiere desde la sección %s?\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "¿Qué página del manual desea?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Ningún registro del manual para %s en sección %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Vea «%s» para ayudar cuando las páginas man no estén disponibles.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "se ignora el preprocesador desconocido «%c»"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "no se puede renombrar %s a %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "no se puede establecer hora en %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "no se puede desenlazar %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "no puede crear flujo cat temporal para %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "no puede crear un directorio temporal"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "no puede abrir temporalmente el fichero %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "no se puede quitar el directorio %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- próxima: %s [ ver (return) | siguiente (Ctrl-D) | salir (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"no se puede escribir en %s en modo catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "No se puede convertir %s a un nombre de tipo cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: depender de las referencias de whatis está en desuso.\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "orden mandb fallada con estado de salida %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "error interno: tipo candidato %d fuera del rango"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Página de manual "
@@ -626,109 +626,109 @@ msgstr "no puede escribir por salida común"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: carácter incompleto al final del búfer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CÓDIGO[:...] -t CÓDIGO [NOMBREFICHERO]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CÓDIGO[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "posible codificaciones de texto original"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CÓDIGO"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codificando para salida"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produce menos advertencias"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "debe especificar una codificación de entrada"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "debe específicamente una codificación de salida"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[RUTAMAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "funciona silenciosamente, excepto para avisos 'espúreos'"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "no buscar o añadir bandeja de car para la bbdd"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "no purgar entradas obsoletas desde las bbdd"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produce solo bases de datos del usuario"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "crea bbdd desde restos mejor que actualizando"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "comprueba páginas de manual para corrección"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOMBREFICHERO"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "actualiza tan solo la entrada para este nombre de fichero"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "no se puede quitar %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "no puede escribir a %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "no puede leer desde %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Procesando las páginas de manual bajo %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Quitando el directorio cat obsoleto %s...\n"
# manpath es algo específico, debe estar presente. nl
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"aviso: no hay directivas MANDB_MAP en %s, se utilizará su ruta man (manpath)"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -737,14 +737,14 @@ msgstr[0] ""
"\n"
msgstr[1] "%d subdirectorios man contenían páginas de manual más recientes.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d página del manual fue añadida.\n"
msgstr[1] "%d páginas del manual fueron añadidas.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
@@ -753,226 +753,224 @@ msgstr[1] ""
"%d bandejas cat fueron añadidas.\n"
"\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "Se han eliminado %d entrada antigua en la base de datos.\n"
msgstr[1] "Se han eliminado %d entradas antiguas en la base de datos.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Ninguna base de datos creada."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "no se puede comprender el fichero de configuración %s de rutas de man"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "aviso: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "aviso: %s no es un directorio"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "listado de ruta manpath demasiado larga"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "aviso: $PATH no asignada"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "aviso: ruta $PATH vacía"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "aviso: el conjunto $MANPATH, se antepondrá %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "aviso: $MANPATH asignada, agregando %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "aviso: $MANPATH asignada, insertando %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "aviso: $MANPATH asignada, ignorando %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "no se puede interpretar la lista de directorios «%s»"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "no se puede abrir el fichero de configuración de rutas de man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "aviso: directorio obligatorio %s no existe"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "no se puede determinar el directorio actual"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "aviso: %s no comienza con %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "muestra rutas catpath relativas"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "muestra la ruta manpath global completa"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"aviso: no se han asignado rutas man globales dentro del fichero de "
"configuración %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "aviso: %s es un enlace simbólico cuyo destino no existe"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "no puede resolver %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Controlando si hay páginas cat sin fuentes bajo %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "aviso: no se pudo actualizar el caché de índices %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s está referenciado a sí mismo"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "PALABRACLAVE..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "La opción --regex está activada por defecto."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "escribe mensajes de advertencia detallados"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreta cada palabra clave como una expreg"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "busca cada palabra clave por coincidente exacto"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "la(s) palabra(s) clave(s) contienen comodines"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "requiere todas las palabras claves a coincidir"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "no cortar salida para ancho del terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "busca solo estas secciones (separados por dos puntos)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "define la localización para esta búsqueda"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s ¿qué?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "aviso: %s contiene un bucle de puntero"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(asunto desconocido)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nada apropiado.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so solicita anidado demasiado profunda o son recursivas"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: aviso: petición .so fallada"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: advertencia: línea nueva dentro de petición .so, ignorando"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: aviso: petición .lf mal formada, ignorandando"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: aviso: nuevo línea en petición -lf, ignorando"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: comilla indeterminada en petición roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "interruptor de compatibilidad (ignorado)"
+#~ msgid "manpath list too long"
+#~ msgstr "listado de ruta manpath demasiado larga"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "no se puede restaurar el anterior directorio de trabajo"
diff --git a/po/fi.gmo b/po/fi.gmo
index a2b95347..201b0abc 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 0f66fa4b..afef5978 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.0-pre1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2015-07-28 21:52+0300\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -18,59 +18,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.3\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "voimassaolevaa UID:ta ei voi asettaa"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr ""
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr ""
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr ""
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr ""
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr ""
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr ""
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr ""
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] ""
msgstr[1] ""
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr ""
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr ""
@@ -91,181 +86,186 @@ msgstr ""
msgid "fatal: unable to insert version identifier into %s"
msgstr ""
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr ""
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr ""
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr ""
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr ""
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[OSIO...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "POLKU"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "aseta opastesivujen hakupoluksi POLKU"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "TIEDOSTO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
#, fuzzy
msgid "use this user configuration file"
msgstr "opastepolkujen asetustiedostoa %s ei voi avata"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr ""
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "tietokantaa %s ei voi lukea"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr ""
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
"Updating cat files for section %s of man hierarchy %s\n"
msgstr ""
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr ""
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr ""
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr ""
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr ""
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "varoitus: %s: ei huomioida tyhjää tiedostoa"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr ""
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr ""
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr ""
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr ""
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr ""
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr ""
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr ""
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr ""
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "valmis.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr ""
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr ""
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr ""
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr ""
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr ""
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr ""
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "sivun nimi sisältää jokerimerkkejä"
@@ -276,333 +276,333 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] ""
msgstr[1] ""
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr ""
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "TIEDOSTO..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr ""
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "jäsennä man-sivuna"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "jäsennä cat-sivuna"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "näytä whatis-tiedot"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "näytä arvattu sarja esikäsittelysuotimia"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "MERKISTÖ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "käytä valittua tulosteen merkistöä"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, fuzzy, c-format
msgid "%s: incompatible options"
msgstr ": epäyhteensopivat valitsimet"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr ""
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[OSIO] SIVU..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "palauta kaikki valitsimet oletusarvoihinsa"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "VAROITUKSET"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr ""
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Päätoimintatilat:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "whatis-vastine"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "apropos-vastine"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "etsi tekstiä kaikilta sivuilta"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "näytä opastesivu(je)n fyysinen sijainti"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "näytä cat-sivu(je)n fyysinen sijainti"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "tulkitse SIVU-argumentti paikallisena tiedostonimenä"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr ""
-#: src/man.c:296
+#: src/man.c:286
#, fuzzy
msgid "Finding manual pages:"
msgstr " Opastesivu "
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr ""
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "JÄRJESTELMÄ"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr ""
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr ""
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr ""
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr ""
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr ""
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr ""
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr ""
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Muotoillun tulosteen hallinta:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr ""
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "MERKKIJONO"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr ""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr ""
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr ""
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr ""
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
msgstr ""
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr ""
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "LAITE"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr ""
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "SELAIN"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr ""
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUUTIO"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
msgstr ""
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr ""
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, fuzzy, c-format
msgid "No manual entry for %s\n"
msgstr "Sovellukselle %s ei ole opastesivua"
-#: src/man.c:612
+#: src/man.c:599
#, fuzzy, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "Minkä opastesivun haluat osiosta %s?\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Minkä opastesivun haluat?\n"
-#: src/man.c:785
+#: src/man.c:730
#, fuzzy, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Sovellukselle %s ei ole opastesivua"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ei huomioida tuntematonta esikäsittelintä \"%c\""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr ""
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr ""
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr ""
-#: src/man.c:1858
+#: src/man.c:1803
#, fuzzy, c-format
msgid "can't create temporary cat for %s"
msgstr "varoitus: väliaikaistiedostoa %s ei voi luoda"
-#: src/man.c:1968
+#: src/man.c:1913
#, fuzzy, c-format
msgid "can't create temporary directory"
msgstr "nykyistä hakemistoa ei voi määrittää"
-#: src/man.c:1979
+#: src/man.c:1924
#, fuzzy, c-format
msgid "can't open temporary file %s"
msgstr "opastepolkujen asetustiedostoa %s ei voi avata"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr ""
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
"cannot write to %s in catman mode"
msgstr ""
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr ""
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr ""
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb-komento epäonnistui paluuarvolla %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr ""
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Opastesivu "
@@ -615,347 +615,345 @@ msgstr "tiedostoon %s ei voi kirjoittaa"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: epätäydellinen merkki puskurin lopussa"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr ""
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr ""
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "alkuperäisen tekstin mahdolliset merkistöt"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "tulosteen merkistö"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "tuota vähemmän varoituksia"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "syötteen merkistö on annettava"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "tulosteen merkistö on annettava"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr ""
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr ""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr ""
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr ""
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr ""
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr ""
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "TIEDOSTONIMI"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr ""
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "tiedostoa %s ei voi poistaa"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "tiedostoon %s ei voi kirjoittaa"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "tiedostosta %s ei voi lukea"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Käsitellään opastesivuja hakemistossa %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Poistetaan vanhentunut cat-hakemisto %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d man-alihakemisto sisälsi uudempia opastesivuja.\n"
msgstr[1] "%d man-alihakemistoa sisälsi uudempia opastesivuja.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, fuzzy, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] " Opastesivu "
msgstr[1] " Opastesivu "
-#: src/mandb.c:925
+#: src/mandb.c:929
#, fuzzy, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d jotain .. ööö.. kulkukissaa lisättiin.\n"
msgstr[1] "%d jotain .. ööö.. kulkukissaa lisättiin.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, fuzzy, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d vanhaa tietokantamerkintää poistettiin.\n"
msgstr[1] "%d vanhaa tietokantamerkintää poistettiin.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Tietokantoja ei luotu."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr ""
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "varoitus: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "varoitus: %s ei ole hakemisto"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "opastepolkujen luettelo on liian pitkä"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "varoitus: polkumuuttujaa $PATH ei ole asetettu"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "varoitus: tyhjä polkumuuttuja $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr ""
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "varoitus: $MANPATH asetettu, lisätään loppuun %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr ""
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr ""
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr ""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "opastepolkujen asetustiedostoa %s ei voi avata"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "varoitus: välttämätön hakemisto %s ei ole olemassa"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "nykyistä hakemistoa ei voi määrittää"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "varoitus: %s ei ala merkkijonolla %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr ""
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr ""
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"varoitus: asetustiedostossa %s ei ole asetettu järjestelmänlaajuisia "
"opastepolkuja"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "varoitus: %s on rikkinäinen symlinkki"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr ""
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr ""
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr ""
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s viittaa itseensä"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "AVAINSANA..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr ""
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr ""
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr ""
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr ""
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "avainsana(t) sisältävät jokerimerkkejä"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr ""
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "älä katkaise tulostetta päätteen leveyteen"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr ""
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr ""
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s mikä?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "varoitus: %s sisältää osoitinsilmukan"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(tuntematon aihe)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: ei mitään sopivaa.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr ""
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr ""
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr ""
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "yhteensopivuusvalitsin (jätetään huomiotta)"
+#~ msgid "manpath list too long"
+#~ msgstr "opastepolkujen luettelo on liian pitkä"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "nykyistä hakemistoa ei voi määrittää"
diff --git a/po/fr.gmo b/po/fr.gmo
index c86a6ba1..7806b7d5 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 705232b2..49dbc678 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-23 19:34+0100\n"
"Last-Translator: David Prévot <david@tilapin.org>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -20,59 +20,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1\n"
"X-Generator: Lokalize 1.2\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "impossible de positionner le propriétaire (UID) effectif"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "l'utilisateur man privilégié (setuid) « %s » n'existe pas"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "impossible de changer le propriétaire de %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "erreur fatale : expression rationnelle « %s » : %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "la clef multiple %s n'existe pas"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "impossible de verrouiller le cache d'index %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "le cache d'index %s est endommagé"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "impossible de remplacer la clef %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "il n'y a qu'un champ dans le contenu"
msgstr[1] "il n'y a que %d champs dans le contenu"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "mauvais accès sur la clef multiple %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "La base %s est corrompue, reconstruisez-la avec mandb --create"
@@ -92,64 +87,64 @@ msgstr "attention : %s a pour version %s au lieu de %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "erreur fatale : impossible d'insérer l'identifiant de version dans %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BASE DE DONNÉES DE MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "La base de données par défaut est %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "affichage des messages de débogage"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "impossible d'ouvrir %s en lecture"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECTION...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CHEMIN"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "configure le chemin de recherche des pages de manuel à CHEMIN"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FICHIER"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "utilise ce fichier de configuration utilisateur"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "la commande man a échoué avec %d comme code de retour"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "impossible de lire la base de données %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "contenu vide (NULL) pour la clef : %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -158,116 +153,121 @@ msgstr ""
"\n"
"Mise à jour des fichiers préformatés pour la section %s de %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "impossible d'écrire dans %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "impossible de mettre %s à jour"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "attention : %s/man%s/%s.%s* : extensions en conflit"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "impossible de mettre à jour le cache d'index %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "attention : %s : lien symbolique ou directive ROFF « .so » incorrect"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "attention : %s : fichier vide ignoré"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "attention : %s : la recherche de whatis sur %s(%s) a échoué"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "impossible de chercher dans le répertoire %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "impossible de changer le propriétaire de %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "attention : impossible de créer le répertoire de pages préformatées %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "impossible de changer les droits de %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "impossible d'aller dans le répertoire %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "impossible de créer le cache d'index %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Mise à jour du cache d'index pour le chemin « %s/%s ». Attendez…"
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "terminé.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Effacement des entrées inutiles de %s en cours…\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "attention : impossible de stocker l'entrée pour %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "attention : %s : nom de fichier erroné, ignoré"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CHEMIN SECTION NOM"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSION"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "limite la recherche aux extensions EXTENSION"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "recherche les pages sans distinguer la casse (par défaut)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "recherche les pages en distinguant la casse"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "considère le nom de page comme une expression rationnelle"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "le nom de page contient des caractères joker"
@@ -278,196 +278,196 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "attention : whatis pour %s dépasse d'un octet, excédent tronqué."
msgstr[1] "attention : whatis pour %s dépasse de %d octets, excédent tronqué."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "impossible d'ouvrir %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FICHIER..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Les options par défaut sont --man et --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "lit les fichiers en tant que pages de manuel"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "lit les fichiers en tant que pages préformattées"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "affiche les renseignements comme whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "affiche la liste supposée des filtres de pré-traitement"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "ENCODAGE"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "utilise l'encodage d'affichage choisi"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s : options incompatibles"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "commande terminée avec %d comme code de retour : %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECTION] PAGE..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "réinitialise les valeurs par défaut des options"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVERTISSEMENTS"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "active les avertissements de groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Modes opératoires principaux :"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "équivalent à whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "équivalent à apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "recherche le texte dans toutes les pages"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "affiche l'emplacement des pages du manuel"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "affiche l'emplacement des fichiers « cat »"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interprète l'argument PAGE comme un nom de fichier"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "utilisé par catman pour reformater les pages trop vieilles"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "affiche le code source converti en ENCODAGE"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Recherche des pages de manuel :"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "définit la locale pour cette recherche de manuel"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTÈME"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "utilise les pages de manuel d'autres systèmes"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTE"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "utilise la liste des sections séparées par des deux-points"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "montre toutes les pages correspondant à l'expression rationnelle"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "montre toutes les pages correspondant au caractère joker"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"correspond seulement aux noms de pages avec --regex et --wildcard, pas aux "
"descriptions"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "trouve toutes les pages correspondantes"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "force une vérification de cohérence du cache"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
"ne prend pas en compte les sous-commandes, par exemple « man truc bidule » "
"=> « man truc-bidule »"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Contrôle du format d'affichage :"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "AFFICHEUR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "utilise de programme AFFICHEUR pour l'affichage"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CHAÃŽNE"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "donne une chaîne d'invite à « less »"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "affiche un équivalent ASCII de certains caractères latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "désactive la césure"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "désactive la justification"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -477,34 +477,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "utilise %s pour formater les pages"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "PÉRIPHÉRIQUE"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "utilise %s avec le périphérique sélectionné"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "NAVIGATEUR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "utilise %s ou NAVIGATEUR pour l'affichage HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RÉSOLUTION"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -512,84 +512,84 @@ msgstr ""
"utilise groff et affiche avec gditview (X11) :\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "utilise groff en le forçant à produire ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Aucune entrée de manuel pour %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Sinon, quelle page de manuel de la section %s voulez-vous ?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Quelle page de manuel voulez-vous ?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Aucune entrée de manuel pour %s en section %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"voir « %s » pour obtenir de l'aide quand les pages de manuel ne sont pas "
"disponibles.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "le préprocesseur « %c » est inconnu et ignoré"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "impossible de renommer %s en %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "impossible de changer la date de %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "impossible de supprimer %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "impossible de créer une page « cat » temporaire pour %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "impossible de créer le répertoire temporaire"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "impossible d'ouvrir le fichier temporaire %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "impossible de supprimer le répertoire %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- prochain : %s [ voir (entrée) | passer (Ctrl-D) | quitter (Ctrl-"
"C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -598,28 +598,28 @@ msgstr ""
"\n"
"impossible d'écrire vers %s en mode catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Impossible de convertir %s en nom de page préformatée"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr ""
"%s : il est conseillé de ne plus se baser sur les références de whatis\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "la commande mandb a échoué avec le code de retour %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "erreur interne : le type candidat %d est hors de portée"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Page de manuel "
@@ -632,351 +632,349 @@ msgstr "impossible d'écrire vers la sortie standard"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv : caractère incomplet en fin de tampon"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CODE[:...] -t CODE [NOM_DE_FICHIER]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODE[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "encodages possibles du texte d'origine"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CODE"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "encodage de l'affichage"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "crée moins d'avertissements"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "l'encodage d'entrée doit être précisé"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "l'encodage de sortie doit être précisé"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPATH]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "n'affiche rien à part les avertissement de dysfonctionnement"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "ne cherche ni n'ajoute de fichiers « cat » parasites dans la base"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "ne supprime pas les entrées obsolètes de la base"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produit seulement les bases utilisateur"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "crée les bases du début plutôt qu'une mise à jour"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "vérifie la validité des pages de manuel"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOM_DE_FICHIER"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "met seulement à jour l'entrée correspondant à ce nom de fichier"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "impossible de supprimer %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "impossible d'écrire dans %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "impossible de lire à partir de %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Traitement des pages du manuel sous %s…\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Suppression du répertoire « cat » obsolète %s…\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"attention : aucune directive MANDB_MAP dans %s, votre fichier manpath est "
"utilisé"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "Un sous-répertoire de manuel contient de nouvelles pages.\n"
msgstr[1] "%d sous-répertoires de manuel contiennent de nouvelles pages.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "Une page de manuel a été ajoutée.\n"
msgstr[1] "%d pages de manuel ont été ajoutées.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "Une page sans source a été ajoutée.\n"
msgstr[1] "%d pages sans source ont été ajoutées.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "Une entrée inutile de la base a été supprimée.\n"
msgstr[1] "%d entrées inutiles de la base ont été supprimées.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Aucune base de données créée."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "le fichier de configuration de manpath %s est bizarre"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "attention : %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "attention : %s n'est pas un répertoire"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "la liste de manpath est trop longue"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "attention : la variable $PATH n'est pas positionnée"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "attention : la variable $PATH est vide"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr ""
"attention : la variable $MANPATH est positionnée, elle est précédée de %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr ""
"attention : la variable $MANPATH est positionnée, elle est suivie de %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "attention : la variable $MANPATH est positionnée, %s est inséré"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "attention : la variable $MANPATH est positionnée, %s est ignoré"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "impossible de parcourir la liste de répertoire « %s »"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "impossible d'ouvrir le fichier de configuration de manpath %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "attention : le répertoire requis %s n'existe pas"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "impossible de déterminer quel est le répertoire courant"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "attention : %s ne commence pas par %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "affiche les chemins d'accès relatifs aux pages «\\ cat\\ »"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "affiche les chemins complets de pages de manuel"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"attention : aucun chemin de pages de manuel dans le fichier de configuration "
"%s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "attention : %s est un lien symbolique flottant"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "impossible de résoudre %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Recherche des fichiers préformatés sans sources sous %s…\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "attention : impossible de mettre à jour le cache d'index %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s s'auto-référence"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "MOT-CLEF..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "L'option --regex est activée par défaut. "
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "affiche des messages d'avertissement étendus"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interprète chaque mot-clef comme une expression régulière"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "recherche une correspondance exacte de chaque mot-clef"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "les mots-clefs contiennent des jokers"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "tous les mots-clefs doivent correspondre"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "ne réduit pas l'affichage à la largeur du terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "recherche limitée à ces sections (séparées par des deux-points)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "définit la locale pour cette recherche"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s comment ?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "attention : %s contient une référence circulaire"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(sujet inconnu)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s : rien d'adéquat\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d : requêtes .so imbriquées trop profondément ou récursivement"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: attention : requête .so échouée"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: attention : retour à la ligne dans une requête .so, ignorée"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: attention : anomalie dans la requête .lf , ignorée"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: attention : retour à la ligne dans une requête .lf, ignorée"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: guillemet non fermé dans une requête roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "changement de compatibilité (ignoré)"
+#~ msgid "manpath list too long"
+#~ msgstr "la liste de manpath est trop longue"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "impossible de restaurer le répertoire de travail précédent"
diff --git a/po/id.gmo b/po/id.gmo
index c383120f..0b55d5f0 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 57ffa5c2..c84515fc 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.6.6-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2014-08-10 19:00+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -17,59 +17,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "tidak dapat menset uid efektif"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "setuid pengguna man \"%s\" tidak ada"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "tidak dapat chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: regex `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "multi kunci %s tidak ada"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "tidak dapat mengunci persediaan indeks %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "persediaan indeks %s tidak lengkap"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "tidak dapat menggantikan kunci %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "hanya bagian %d ada dalam isi"
msgstr[1] "hanya bagian %d ada dalam isi"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "pengambilan buruk di multi kunci %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Basis data %s terkorupsi; membuat kembali dengan mandb --create"
@@ -89,64 +84,64 @@ msgstr "peringatan: %s memiliki versi %s, diduga %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: tidak dapat memasukan pengidentifikasi versi kedalam %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BASIS DATA MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Basis data man baku ke %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "keluarkan pesan penelusuran"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "tidak dapat membuka %s untuk pembacaan"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[BAGIAN...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "JALUR"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "tentukan jalur pencarian untuk halaman buku panduan ke JALUR"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "BERKAS"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "gunakan berkas konfigurasi pengguna ini"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "perintah man gagal dengan status keluar %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "tidak dapat membaca basis data %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "isi KOSONG untuk kunci: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -155,116 +150,121 @@ msgstr ""
"\n"
"Memperbarui berkas cat untuk bagian %s dari struktur man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "tidak dapat menulis didalam %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "tidak dapat memperbarui %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "peringatan: %s/man%s/%s.%s*: ekstensi berkompetisi"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "tidak dapat mengupdate persediaan indeks %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "peringatan: %s: symlink buruk atau ROFF `.so' diminta"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "peringatan: %s: mengabaikan berkas kosong"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "peringatan: %s: whatis parse untuk %s(%s) gagal"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "tidak dapat mencari direktori %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "tidak dapat chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "peringatan: tidak dapat membuat catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "tidak dapat chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "tidak dapat mengubah direktori %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "tidak dapat membuat persediaan indeks %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Memperbarui persediaan indeks untuk jalur `%s/%s'. Mohon tunggu..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "selesai.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Menghapus masukan basis data lama dalam %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "peringatan: gagal untuk menyimpan masukan untuk %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "peringatan: %s: mengabaikan nama berkas palsu"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "NAMA JALUR BAGIAN"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EKSTENSI"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "batasi pencarian ke tipe ekstensi EKSTENSI"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "cari untuk halaman dengan tidak membedakan besar huruf (baku)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "cari untuk halaman dengan membedakan besar huruf"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "intepretasikan nama halaman sebagai sebuah regex"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "nama halaman berisi huruf bebas"
@@ -275,194 +275,194 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "peringatan: whatis untuk %s melebihi %d bytes, dipotong."
msgstr[1] "peringatan: whatis untuk %s melebihi %d bytes, dipotong."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "tidak dapat membuka %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "BERKAS..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Baku adalah --man dan --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "parse sebagai halaman man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "parse sebagai halaman cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "tampilkan informasi whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "tampilkan urutan terkaan dari preproses penyaring"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "PENGKODEAN"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "gunakan pengkodean keluaran yang dipilih"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: pilihan tidak kompatibel"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "perintah keluar dengan status %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[BAGIAN] HALAMAN..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "reset semua pilihan ke nilai bakunya"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "PERINGATAN"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "aktifkan peringatan dari groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Mode operasi utama:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "sama dengan whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "sama dengan apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "cari teks dalam seluruh halaman"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "tampilkan lokasi aktual dari halaman man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "tampilkan lokasi aktual dari halaman cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpretasikan HALAMAN argumen sebagai nama berkas lokal"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
"digunakan oleh catman untuk mereformat keluaran dari halaman tanggal cat"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "keluaran sumber halaman dikodekan dalam PENGKODEAN"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Mencari halaman manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOKAL"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "definisikan lokal untuk pencarian man ini"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "gunakan halaman manual dari sistem lain"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "DAFTAR"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "gunakan daftar bagian dipisahkan oleh kolon"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "tampilkan seluruh halaman yang cocok dengan regex"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "tampilkan seluruh halaman yang cocok dengan huruf bebas"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"buat pencocokan nama halaman --regex dan --wildcard saja, bukan deskripsi"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "cari seluruh halaman buku panduan yang cocok"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "paksa sebuah pemeriksaan konsistensi persediaan"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "jangan coba halaman dalam, contoh 'man foo bar' => 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Mengontrol keluaran terformat:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "gunakan aplikasi PAGER untuk menampilkan keluaran"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "STRING"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "sediakan pager `less' dengan sebuah prompt"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "tampilkan terjemahan ASCII dari beberapa karakter latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "non-aktifkan hyphenasi"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "non-aktifkan hyphenasi"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -472,34 +472,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "gunakan %s untuk memformat halaman"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "PERANGKAT"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "gunakan %s dengan perangkat yang dipilih"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "BROWSER"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "gunakan %s atau BROWSER untuk menampilkan keluaran HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUSI"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -507,84 +507,84 @@ msgstr ""
"gunakan groff dan tampilkan melalui gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "gunakan groff dan paksa itu untuk menghasilkan ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Tidak ada masukan buku panduan untuk %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr ""
"(Secara alternatif, halaman buku panduan mana yang anda inginkan dari bagian "
"%s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Halaman buku panduan mana yang anda inginkan?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Tidak ada masukan buku panduan untuk %s dalam bagian%s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Lihat '%s' untuk bantuan ketika halaman manual tidak tersedia.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "mengabaikan preprosesor tidak dikenal `%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "tidak dapat mengubah nama %s ke %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "tidak dapat menset waktu di %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "tidak dapat unlink %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "tidak dapat membuat cat sementara untuk %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "tidak dapat membuat direktori sementara"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "tidak dapat membuka berkas sementara %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "tidak dapat menghapus direktori %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- selanjutnya: %s [ lihat (return) | lewat (Ctrl-D) | berhenti (Ctrl-"
"C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"tidak dapat menulis ke %s dalam mode catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Tidak dapat mengubah %s ke nama cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: bergantung ke referensi whatis sudah ditinggalkan\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "perintah mandb gagal dengan status keluar %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "internal error: tipe kandidat %d diluar dari jangkauan"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Halaman buku panduan "
@@ -626,108 +626,108 @@ msgstr "tidak dapat menulis ke standar keluaran"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: karakter tidak lengkap di akhir dari penyangga"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KODE[:...] -t KODE [NAMA BERKAS]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KODE[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "pengkodean yang memungkinkan dari teks asli"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KODE"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "pengkodean untuk keluaran"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "menghasilkan peringatan lebih sedikit"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "harus menspesifikasikan sebuah pengkodean masukan"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "harus menspesifikasikan sebuah pengkodean keluaran"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[JALUR MAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "bekerja secara halus, kecuali untuk peringatan 'palsu'"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "jangan mencari atau menambahkan cats menyimpang ke basis data"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "jangan menghapus masukan yang sudah ditinggalkan dari basis data"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "hanya menghasilkan basis data pengguna"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "membuat basis data dari serpihan, daripada memperbaruinya"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "memeriksa halaman buku panduan untuk kebenarannya"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NAMA BERKAS"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "perbarui hanya masukan untuk nama berkas ini"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "tidak dapat menghapus %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "tidak dapat menulis ke %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "tidak dapat membaca dari %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Memproses halaman buku panduan dibawah %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Memeriksa untuk cats menyimpang dibawah %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"peringatan: tidak ada direktif MANDB_MAP dalam %s, menggunakan jalur man anda"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -738,238 +738,236 @@ msgstr[1] ""
"%d man subdirektori berisi halaman buku panduan lebih baru. halaman buku "
"panduan telah ditambahkan.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d Halaman buku panduan \n"
msgstr[1] "%d Halaman buku panduan \n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d cats menyimpang telah ditambahkan.\n"
msgstr[1] "%d cats menyimpang telah ditambahkan.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d masukan basis data lama telah dihapus.\n"
msgstr[1] "%d masukan basis data lama telah dihapus.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Tidak ada basis data yang dibuat."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "tidak dapat menerima berkas konfigurasi manpath %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "peringatan: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "peringatan: %s bukan sebuah direktori"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "daftar manpath terlalu panjang"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "peringatan: $PATH belum diset"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "peringatan: $PATH kosong"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "peringatan: $MANPATH set, mengawali %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "peringatan: $MANPATH set, menambahkan %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "peringatan: $MANPATH set, memasukan %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "peringatan: $MANPATH set, mengabaikan %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "tidak dapat mengambil daftar direktori `%s'"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "tidak dapat membuka berkas konfigurasi manpath %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "peringatan: direktori wajib %s tidak ada"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "tidak dapat menentukan direktori sekarang"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "peringatan: %s tidak dimulai dengan %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "tampilkan relative catpaths"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "tampilkan seluruh global manpath"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "peringatan: tidak ada global manpath diset dalam berkas konfigurasi %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "peringatan: %s adalah sebuah sambungan simbolik yang rusak"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "tidak dapat meresolf %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Memeriksa untuk cats menyimpang dibawah %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "peringatan: tidak dapat memperbarui persediaan indeks %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s adalah mereferensikan dirinya sendiri"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "KATA KUNCI..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Pilihan --regex aktif secara baku."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "tampikan pesan peringatan bertele-tele"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "intepretasikan setiap kata kunci sebagai sebuah regex"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "cari setiap kata kunci untuk pencocokan yang tepat"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "kata kunci berisi huruf bebas"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "membutuhkan semua kata kunci untuk mencocokan"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "jangan trim keluaran ke lebar terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "hanya cari di bagian ini"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "definisikan lokal untuk pencarian ini"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s apa?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "peringatan: %s berisi sebuah penunjuk loop"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(subjek tidak diketahui)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: tidak ada yang sesuai.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: permintaan .so nested terlalu dalam atau rekursif"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: peringatan: permintaan .so gagal"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: peringatan: baris baru dalam permintaan .so, diabaikan"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: peringatan: salah bentuk permintaan .lf, diabaikan"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: peringatan: baris baru dalam permintaan .lf, diabaikan"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: quote tidak terselesaikan dalam permintaan roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "pilihan untuk kompabilitas saja (diabaikan)"
+#~ msgid "manpath list too long"
+#~ msgstr "daftar manpath terlalu panjang"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "tidak dapat membuat direktori sementara"
diff --git a/po/it.gmo b/po/it.gmo
index 18309cae..d24f87ce 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index b99e421e..2798877c 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.4.3\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2005-12-10 17:30+0100\n"
"Last-Translator: Giuseppe Sacco <eppesuig@debian.org>\n"
"Language-Team: Italian <tp@linux.it>\n"
@@ -16,59 +16,54 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "impossibile impostare lo uid effettivo"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "non esiste l'utente man con setuid \"%s\""
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "impossibile fare chown su %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "errore grave: regex \"%s\": %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "non esiste la chiave multipla %s"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "impossibile bloccare l'indice %s nella cache"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "indice %s della cache corrotto"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "impossibile rimpiazzare la chiave %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, fuzzy, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "trovati solo %d campi"
msgstr[1] "trovati solo %d campi"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "fetch errato sulla chiave multipla %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Il database %s è corrotto; lo si ricrei con mandb --create"
@@ -88,65 +83,65 @@ msgstr "attenzione: %s ha versione %s, invece dell'attesa %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "errore grave: impossibile inserire l'identificatore di versione in %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr ""
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr ""
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr ""
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "impossibile aprire %s in lettura"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
#, fuzzy
msgid "use this user configuration file"
msgstr "impossibile aprire il file di configurazione dei percorsi man %s"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "comando man fallito con stato d'uscita %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "impossibile leggere il database %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "contenuto NULL per la chiave: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -155,117 +150,122 @@ msgstr ""
"\n"
"Aggiornamento dei file cat della sezione %s della gerarchia di manuali %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "impossibile scrivere all'interno di %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "impossibile aggiornare %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "attenzione: %s/man%s/%s.%s*: estensioni in conflitto"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "impossibile aggiornare l'indice %s della cache"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "attenzione: %s: link simbolico o richiesta ROFF \".so\" errato(a)"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "attenzione: %s: viene ignorato un file vuoto"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "attenzione: %s: analisi whatis per %s(%s) fallita"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "impossibile ricercare nella directory %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "impossibile fare chown su %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "attenzione: impossibile creare la directory %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "impossibile fare chmod su %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "impossibile posizionarsi nella directory %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "impossibile creare l'indice %s della cache"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr ""
"Aggiornamento dell'indice della cache per il percorso \"%s/%s\". Attendere..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "fatto.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Rimozione delle vecchie voci di basi dati in %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "attenzione: c'è stato un errore memorizzando il dato %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "attenzione: %s: vengono ignorati i nomi di file fasulli"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr ""
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr ""
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr ""
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr ""
@@ -276,308 +276,308 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "attenzione: whatis per %s eccede di %d byte, troncato."
msgstr[1] "attenzione: whatis per %s eccede di %d byte, troncato."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "impossibile aprire %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr ""
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr ""
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr ""
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr ""
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr ""
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr ""
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, fuzzy, c-format
msgid "%s: incompatible options"
msgstr ": opzioni incompatibili"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "comando terminato con stato d'uscita %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr ""
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr ""
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr ""
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr ""
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr ""
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr ""
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr ""
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr ""
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr ""
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr ""
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr ""
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr ""
-#: src/man.c:296
+#: src/man.c:286
#, fuzzy
msgid "Finding manual pages:"
msgstr " Pagina di manuale "
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr ""
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr ""
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr ""
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr ""
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr ""
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr ""
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr ""
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr ""
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr ""
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr ""
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr ""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr ""
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr ""
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr ""
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
msgstr ""
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr ""
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr ""
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr ""
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr ""
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr ""
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr ""
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
msgstr ""
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr ""
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Non c'è il manuale per %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, fuzzy, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "Quale pagina di manuale si desidera della sezione %s?\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Quale pagina di manuale si desidera?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Non c'è il manuale per %s nella sezione %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Si veda \"%s\" per l'aiuto quando le pagine di manuali non sono presenti.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "preprocessore \"%c\" sconosciuto, lo ignoro"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "impossibile rinominare %s in %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "impossibile impostare la data per %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "impossibile fare unlink di %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "impossibile creare un file 'cat' temporaneo per %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, fuzzy, c-format
msgid "can't create temporary directory"
msgstr "impossibile creare un file 'cat' temporaneo per %s"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "impossibile aprire il file temporaneo %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "impossibile rimuovere la directory %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- successivo: %s [ mostra (return) | salta (Ctrl-D) | esci (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -586,27 +586,27 @@ msgstr ""
"\n"
"impossibile scrivere in %s in modo catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Impossibile convertire %s nel nome cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: confidare nei whatis refs è obsoleto\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "comando mandb fallito con stato d'uscita %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "errore interno: il tipo %d candidato è oltre il limite"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Pagina di manuale "
@@ -619,107 +619,107 @@ msgstr "impossibile scrivere in %s"
msgid "iconv: incomplete character at end of buffer"
msgstr ""
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr ""
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr ""
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr ""
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr ""
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr ""
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr ""
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr ""
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr ""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr ""
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr ""
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr ""
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr ""
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr ""
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "impossibile rimuovere %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "impossibile scrivere in %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "impossibile leggere da %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Lavorazione delle pagine di manuale sotto a %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, fuzzy, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Ricerca degli stray cat sotto a %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "attenzione: nessuna direttiva MANDB_MAP in %s, uso del tuo manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, fuzzy, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -730,240 +730,238 @@ msgstr[1] ""
"%d sottodirectory man contenevano nuove pagine di manuale.\n"
"Sono state aggiunte %d pagine di manuale\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, fuzzy, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] " Pagina di manuale "
msgstr[1] " Pagina di manuale "
-#: src/mandb.c:925
+#: src/mandb.c:929
#, fuzzy, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d stray cat sono stati aggiunti.\n"
msgstr[1] "%d stray cat sono stati aggiunti.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, fuzzy, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d vecchie voci di database sono state rimosse.\n"
msgstr[1] "%d vecchie voci di database sono state rimosse.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, fuzzy, c-format
msgid "No databases created."
msgstr "Il database non è stato aggiornato."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "il file di configurazione dei percorsi man %s non ha senso"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "attenzione: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "attenzione: %s non è una directory"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "la lista dei percorsi manpath è troppo lunga"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "attenzione: $PATH non impostata"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "attenzione: $PATH vuota"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "attenzione: $MANPATH già impostata, aggiungo in testa %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "attenzione: $MANPATH già impostata, aggiungo in coda %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "attenzione: $MANPATH già impostata, inserisco %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "attenzione: $MANPATH già impostata, ignoro %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "impossibile analizzare la lista di directory \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "impossibile aprire il file di configurazione dei percorsi man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "attenzione: la directory essenziale %s non esiste"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "impossibile determinare la directory corrente"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "attenzione: %s non inizia con %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr ""
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr ""
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"attenzione: nessun percorso man globale impostato nel file di configurazione "
"%s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "attenzione: %s è un link simbolico spezzato"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "impossibile risolvere %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Ricerca degli stray cat sotto a %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "attenzione: impossibile aggiornare l'index %s della cache"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s è auto referenziante"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr ""
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr ""
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr ""
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr ""
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr ""
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr ""
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr ""
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr ""
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr ""
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr ""
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s cosa?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "attenzione: %s contiene un riferimeno a se stesso"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(oggetto sconosciuto)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: niente di appropriato.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr ""
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr ""
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr ""
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr ""
+#~ msgid "manpath list too long"
+#~ msgstr "la lista dei percorsi manpath è troppo lunga"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "impossibile creare un file 'cat' temporaneo per %s"
diff --git a/po/ja.gmo b/po/ja.gmo
index 391594a3..40c4dc3b 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index c041bfee..4443f875 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db-2.6.5\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2013-06-27 19:41+0900\n"
"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -18,58 +18,53 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "実効 UID を設定ã§ãã¾ã›ã‚“"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "setuid ã•ã‚ŒãŸ man ユーザー \"%s\" ã¯å­˜åœ¨ã—ã¾ã›ã‚“"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "%s ã®æ‰€æœ‰è€…を変更 (chown) ã§ãã¾ã›ã‚“"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "致命的: æ­£è¦è¡¨ç¾ `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "複åˆã‚­ãƒ¼ %s ã¯å­˜åœ¨ã—ã¾ã›ã‚“"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "index キャッシュ %s をロックã§ãã¾ã›ã‚“"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "index キャッシュ %s ãŒå£Šã‚Œã¦ã„ã¾ã™"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "キー %s ã‚’ç½®æ›ã§ãã¾ã›ã‚“"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "中身㌠%d フィールドã—ã‹ã‚ã‚Šã¾ã›ã‚“"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "複åˆã‚­ãƒ¼ %s ã¯ä¸æ­£ãªå‘¼ã³å‡ºã—ã§ã™"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr ""
@@ -91,64 +86,64 @@ msgstr "警告: %1$s ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ %3$s ãŒäºˆæœŸã•ã‚Œã¾ã™ãŒã€å®Ÿéš
msgid "fatal: unable to insert version identifier into %s"
msgstr "致命的: %s ã«ãƒãƒ¼ã‚¸ãƒ§ãƒ³è­˜åˆ¥å­ã‚’挿入ã§ãã¾ã›ã‚“"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN DATABASE]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "man データベースã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚’ %s%s ã«ã—ã¾ã™ã€‚"
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "デãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã™ã‚‹"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "%s を読ã¿è¾¼ã¿ç”¨ã«é–‹ã‘ã¾ã›ã‚“"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECTION...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "PATH"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "man ページ用ã®æ¤œç´¢ãƒ‘スを PATH ã«è¨­å®šã™ã‚‹"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FILE"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’使用ã™ã‚‹"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "man コマンドãŒçµ‚了ステータス %d ã§å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "データベース %s を読ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "キー %s ã®å†…容㯠NULL ã§ã™"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,117 +152,122 @@ msgstr ""
"\n"
"man 階層 %2$s ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ %1$s ã® cat ファイルを更新ã—ã¦ã„ã¾ã™\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "%s ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "%s ã‚’æ›´æ–°ã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "警告: %s/man%s/%s.%s*: æ‹¡å¼µå­ãŒç«¶åˆã—ã¦ã„ã¾ã™"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "index キャッシュ %s ã‚’æ›´æ–°ã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
"警告: %s: シンボリックリンクã¾ãŸã¯ ROFF ã® `.so' è¦æ±‚ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "警告: %s: 空ファイルを無視ã—ã¦ã„ã¾ã™"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "警告: %s: whatis ㌠%s(%s) ã®è§£é‡ˆã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "ディレクトリー %s を検索ã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "%s ã®æ‰€æœ‰è€…を変更 (chown) ã§ãã¾ã›ã‚“"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "警告: cat ディレクトリー %s を作æˆã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "%s ã®è¨±å¯å±žæ€§ã‚’変更 (chmod) ã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "ディレクトリ %s ã«ç§»å‹•ã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "index キャッシュ %s を作æˆã§ãã¾ã›ã‚“"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "パス `%s/%s' ã® index キャッシュを更新ã—ã¦ã„ã¾ã™ã€‚ãŠå¾…ã¡ãã ã•ã„..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "完了ã—ã¾ã—ãŸã€‚\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "%s 内ã®å¤ã„データベースè¦ç´ ã‚’å–り除ã„ã¦ã„ã¾ã™...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "警告: %s(%s) 用ã®è¦ç´ ã®ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "警告: %s: ãŠã‹ã—ãªãƒ•ã‚¡ã‚¤ãƒ«åを無視ã—ã¦ã„ã¾ã™"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "PATH SECTION NAME"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSION"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "検索対象を拡張å­ãŒ EXTENSION ã®ã‚‚ã®ã«é™å®šã™ã‚‹"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "大文字å°æ–‡å­—を区別ã—ãªã„ã§ãƒšãƒ¼ã‚¸ã‚’検索ã™ã‚‹ (デフォルト)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "大文字å°æ–‡å­—を区別ã—ã¦ãƒšãƒ¼ã‚¸ã‚’検索ã™ã‚‹"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "ページåã‚’æ­£è¦è¡¨ç¾ã¨ã—ã¦è§£é‡ˆã™ã‚‹"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "ページåをワイルドカードã¨ã—ã¦è§£é‡ˆã™ã‚‹"
@@ -277,194 +277,194 @@ msgid "warning: whatis for %s exceeds %d byte, truncating."
msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "警告: %s 用㮠whatis ㌠%d ãƒã‚¤ãƒˆã‚’超ãˆã¦ã„ã¾ã™ã€‚切り詰ã‚ã¾ã™ã€‚"
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "%s をオープンã§ãã¾ã›ã‚“"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FILE..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "デフォルト㯠--man ãŠã‚ˆã³ --whatis ã§ã™ã€‚"
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "man ページã¨ã—ã¦æ§‹æ–‡è§£æžã™ã‚‹"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "cat ページã¨ã—ã¦æ§‹æ–‡è§£æžã™ã‚‹"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "whatis 情報を表示ã™ã‚‹"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "推測ã—ãŸä¸€é€£ã®äº‹å‰å‡¦ç†ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’表示"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "ENCODING"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "é¸æŠžã—ãŸå‡ºåŠ›ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’使用ã™ã‚‹"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: 相互ã«åˆ©ç”¨ã§ããªã„オプションã§ã™"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "コマンドã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ %d ã§çµ‚了ã—ã¾ã—ãŸ: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECTION] PAGE..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "ã™ã¹ã¦ã®ã‚ªãƒ—ションをデフォルト値ã«ãƒªã‚»ãƒƒãƒˆã™ã‚‹"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "WARNINGS"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "groff ã‹ã‚‰ã®è­¦å‘Šã‚’有効ã«ã™ã‚‹"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "æ“作ã®ä¸»ãªãƒ¢ãƒ¼ãƒ‰:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "whatis ã¨åŒæ§˜"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "apropos ã¨åŒæ§˜"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "ã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸ã®ãƒ†ã‚­ã‚¹ãƒˆã‚’検索ã™ã‚‹"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "マニュアルページã®ç‰©ç†çš„ãªä½ç½®ã‚’表示ã™ã‚‹"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "整形済ã¿ãƒ•ã‚¡ã‚¤ãƒ«ã®ç‰©ç†çš„ãªä½ç½®ã‚’表示ã™ã‚‹"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "PAGE 引数をローカルファイルåã¨ã—ã¦è§£é‡ˆã™ã‚‹"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "catman ã«ã‚ˆã£ã¦å¤ã„整形済ã¿ãƒšãƒ¼ã‚¸ã‚’å†æ•´å½¢ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã‚‹"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "ソースページã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒ ENCODING ã§ã‚ã‚‹ã¨ã¿ãªã—ã¦å‡ºåŠ›ã™ã‚‹"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "マニュアルページã®æŽ¢ã—æ–¹:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "ã“ã® man ã®æ¤œç´¢ç”¨ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‚’定義ã™ã‚‹"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "ã»ã‹ã®ã‚·ã‚¹ãƒ†ãƒ ã‹ã‚‰ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’使用ã™ã‚‹"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LIST"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "セクションリストã¨ã—ã¦ã‚³ãƒ­ãƒ³ (:) ã§åŒºåˆ‡ã‚‰ã‚ŒãŸ LIST を使用ã™ã‚‹"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "æ­£è¦è¡¨ç¾ã«ä¸€è‡´ã—ãŸã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸ã‚’表示ã™ã‚‹"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "ワイルドカードã«ä¸€è‡´ã—ãŸã™ã¹ã¦ã®ãƒšãƒ¼ã‚¸ã‚’表示ã™ã‚‹"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"--regex 㨠--wildcard ãŒãƒšãƒ¼ã‚¸åã®ã¿ã«ä¸€è‡´ã™ã‚‹ã‚ˆã†ã«ã—ã€èª¬æ˜Žã«ã¯ä¸€è‡´ã—ãªã„よ"
"ã†ã«ã™ã‚‹"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "å…¨ã¦ã®ä¸€è‡´ã—ãŸãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’探ã—出ã™"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "キャッシュ一貫性ã®ç¢ºèªã‚’強制ã™ã‚‹"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "サブページã®è©¦è¡Œã€ä¾‹ãˆã° 'man foo bar' => 'man foo-bar' ã‚’è¡Œã‚ãªã„"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "æ•´å½¢ã•ã‚ŒãŸå‡ºåŠ›ã®åˆ¶å¾¡:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "出力を表示ã™ã‚‹ãƒ—ログラムã¨ã—㦠PAGER を使用ã™ã‚‹"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "STRING"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "`less' ページャーã®ãƒ—ロンプトを指定ã™ã‚‹"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "一部㮠latin1 文字を ASCII 文字ã«å¤‰æ›ã—ã¦è¡¨ç¤ºã™ã‚‹"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "ãƒã‚¤ãƒ•ãƒ³ã«ã‚ˆã‚‹è¡Œæœ«å‡¦ç†ã‚’無効ã«ã™ã‚‹"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "å‡ç­‰å‰²ã‚Šä»˜ã‘を無効ã«ã™ã‚‹"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -474,34 +474,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "ページ整形㫠%s を使用ã™ã‚‹"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "DEVICE"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "é¸æŠžã—㟠DEVICE å‘ã‘ã« %s を使用ã™ã‚‹"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "BROWSER"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "HTML 出力を表示ã™ã‚‹ãŸã‚ã« %s ã¾ãŸã¯ BROWSER を使用ã™ã‚‹"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUTION"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -509,82 +509,82 @@ msgstr ""
"groff を使用ã—〠gxditview (X11) を通ã—ã¦è¡¨ç¤ºã™ã‚‹:\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "groff を使用ã—ã€å¼·åˆ¶çš„ã« ditroff を生æˆã™ã‚‹"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "%s ã¨ã„ã†ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(セクション %s ã‹ã‚‰ã©ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’代ã‚ã‚Šã«è¡¨ç¤ºã—ã¾ã™ã‹?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "マニュアルページを指定ã—ã¦ãã ã•ã„\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "%s ã¨ã„ã†ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã¯ã‚»ã‚¯ã‚·ãƒ§ãƒ³ %s ã«ã¯ã‚ã‚Šã¾ã›ã‚“\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"マニュアルページãŒåˆ©ç”¨ã§ããªã„å ´åˆã®ãƒ˜ãƒ«ãƒ—ã«ã¤ã„ã¦ã¯ '%s'を見ã¦ãã ã•ã„。\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ä¸æ˜Žãªå‰å‡¦ç†ç³» `%c' を無視ã—ã¦ã„ã¾ã™"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "%s ã®åå‰ã‚’ %s ã«å¤‰æ›´ã§ãã¾ã›ã‚“"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "%s ã®æ™‚刻を設定ã§ãã¾ã›ã‚“"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "%s を削除(unlink)ã§ãã¾ã›ã‚“"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "%s 用ã®ä¸€æ™‚çš„ãªæ•´å½¢æ¸ˆã¿ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作æˆã§ãã¾ã›ã‚“"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "一時ディレクトリを作æˆã§ãã¾ã›ã‚“"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "一時ファイル %s ã‚’é–‹ã‘ã¾ã›ã‚“"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "ディレクトリ %s を削除ã§ãã¾ã›ã‚“"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- 次ã¯: %s [ 閲覧 (return) | スキップ (Ctrl-D) | 終了 (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"catman モード㧠%s ã«æ›¸ãè¾¼ã¿ã§ãã¾ã›ã‚“"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "%s を整形済ã¿ãƒ•ã‚¡ã‚¤ãƒ«åã«å¤‰æ›ã§ãã¾ã›ã‚“"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: whatis ã®å‚ç…§ã«é ¼ã‚‹ã“ã¨ã¯å‹§ã‚られãªããªã£ã¦ã„ã¾ã™\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb コマンドãŒçµ‚了ステータス %d ã§å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "内部エラー: 候補ã®ç¨®é¡ž %d ã¯ç¯„囲内ã«ã‚ã‚Šã¾ã›ã‚“"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " マニュアルページ "
@@ -626,110 +626,110 @@ msgstr "標準出力ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: ãƒãƒƒãƒ•ã‚¡ã®æœ«å°¾ã«ä¸å®Œå…¨ãªæ–‡å­—ãŒã‚ã‚Šã¾ã™"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CODE[:...] -t CODE [FILENAME]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODE[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "原文ã®æŽ¨å®šã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CODE"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "出力用エンコーディング"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "警告を少ãªãã™ã‚‹"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "入力エンコーディングを指定ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "出力エンコーディングを指定ã—ãªã‘ã‚Œã°ã„ã‘ã¾ã›ã‚“"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPATH]"
# Translator's NOTE: work..., don't look..., produce..., create are from:
# Translator's NOTE: http://lists.debian.or.jp/debian-doc/199812/msg00016.html
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "'ファイルåã®ä¸ä¸€è‡´'ã«ã‚ˆã‚‹è­¦å‘Šä»¥å¤–何も出力ã—ãªã„"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "roff ã®ãªã„ cat ファイルを検索ã€DB ã¸è¿½åŠ ã—ãªã„"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "å¤ããªã£ãŸã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’ DB ã‹ã‚‰å‰Šé™¤ã—ãªã„"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "ユーザ用データベースã®ã¿ã‚’生æˆ"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "データベースを更新ã›ãšã€ä¸€ã‹ã‚‰ä½œæˆã—ç›´ã™"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "マニュアルページã®æ­£ç¢ºã•ã‚’ãƒã‚§ãƒƒã‚¯"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "FILENAME"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«åã®è¦ç´ ã ã‘ã‚’æ›´æ–°"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "%s を削除ã§ãã¾ã›ã‚“"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "%s ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "%s ã‹ã‚‰èª­ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "%s é…下ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’処ç†ã—ã¦ã„ã¾ã™...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "å¤ã„ cat ディレクトリ %s を削除ã—ã¦ã„ã¾ã™...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"警告: %s ã« MANDB_MAP ã®æŒ‡å®šã¯ã‚ã‚Šã¾ã›ã‚“。ã‚ãªãŸã® manpath を使用ã—ã¾ã™"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -737,235 +737,233 @@ msgstr[0] ""
"%d 個ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸å­ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«æ–°ã—ã„マニュアルページãŒå«ã¾ã‚Œã¦ã„ã¾ã—"
"ãŸã€‚\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d 個ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ãŒè¿½åŠ ã•ã‚Œã¾ã—ãŸã€‚\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "roff ã®ãªã„ cat ファイル㌠%d 個追加ã•ã‚Œã¾ã—ãŸã€‚\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d 個ã®å¤ã„データベースè¦ç´ ãŒé™¤åŽ»ã•ã‚Œã¾ã—ãŸã€‚\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "データベースã¯ä½œæˆã•ã‚Œã¾ã›ã‚“ã§ã—ãŸã€‚"
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "manpath 設定ファイル %s ã®å†…容を解釈ã§ãã¾ã›ã‚“"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "警告: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "警告: %s ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "manpath リストãŒé•·ã™ãŽã¾ã™"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "警告: $PATH ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "警告: $PATH ãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "警告: $MANPATH ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚%s ã®è¨­å®šã«è¿½åŠ ã—ã¾ã™"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "警告: $MANPATH ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚%s ã®è¨­å®šã‚’追加ã—ã¾ã™"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "警告: $MANPATH ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚%s ã®è¨­å®šã‚’挿入ã—ã¾ã™"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "警告: $MANPATH ãŒè¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚%s を無視ã—ã¾ã™"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "ディレクトリリスト `%s' を解æžã§ãã¾ã›ã‚“"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "manpath 設定ファイル %s をオープンã§ãã¾ã›ã‚“"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "警告: å¿…è¦ãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª %s ãŒå­˜åœ¨ã—ã¾ã›ã‚“"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "カレントディレクトリを決定ã§ãã¾ã›ã‚“"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "警告: %s 㯠%s ã§å§‹ã¾ã£ã¦ã„ã¾ã›ã‚“"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "相対 catpath を表示"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "グローãƒãƒ«ãª manpath 全体を表示"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "警告: 設定ファイル %s ã«ã‚°ãƒ­ãƒ¼ãƒãƒ«ãª manpath ã®è¨­å®šãŒã‚ã‚Šã¾ã›ã‚“"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "警告: %s ã¯ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ãŒåˆ‡ã‚Œã¦ã„ã¾ã™"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "%s を解決ã§ãã¾ã›ã‚“"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "%s é…下㮠roff ãŒãªã„ cat ファイルをãƒã‚§ãƒƒã‚¯ã—ã¦ã„ã¾ã™...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "警告: index キャッシュ %s ã‚’æ›´æ–°ã§ãã¾ã›ã‚“"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s ã¯è‡ªåˆ†è‡ªèº«ã‚’å‚ç…§ã—ã¦ã„ã¾ã™"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "KEYWORD..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "--regex オプションã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§æœ‰åŠ¹ã§ã™ã€‚"
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "冗長ãªè­¦å‘Šãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã™ã‚‹"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "å„キーワードを正è¦è¡¨ç¾ã¨ã—ã¦è§£é‡ˆã™ã‚‹"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "å„検索語ã«å®Œå…¨ã«ä¸€è‡´ã™ã‚‹ã‚‚ã®ã‚’検索"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "キーワードã§ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã‚’使用ã™ã‚‹"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "全検索語ã«ä¸€è‡´ã™ã‚‹ã‚‚ã®ã‚’検索"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "出力を端末幅ã«åˆ‡ã‚Šè©°ã‚ãªã„"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "ã“れらã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ã¿æ¤œç´¢ã™ã‚‹ (コロン区切り)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "検索ã™ã‚‹ãƒ­ã‚±ãƒ¼ãƒ«ã‚’定義ã™ã‚‹"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s キーワードã¯ä½•ã§ã™ã‹ï¼Ÿ\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "警告: %s ã«ã¯ãƒ«ãƒ¼ãƒ—ã—ã¦ã„ã‚‹ãƒã‚¤ãƒ³ã‚¿ãŒå«ã¾ã‚Œã¦ã„ã¾ã™"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(ä¸æ˜Žãªé¡Œåã§ã™)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: é©åˆ‡ãªã‚‚ã®ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so è¦æ±‚ã®å…¥ã‚Œå­ãŒæ·±ã™ãŽã‚‹ã€ã¾ãŸã¯å†å¸°ã—ã¦ã„ã¾ã™"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: 警告: .so è¦æ±‚ã®å‡¦ç†ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: 警告: .so è¦æ±‚ã®ä¸­ã«æ”¹è¡ŒãŒã‚ã‚Šã¾ã™ã€‚無視ã—ã¦ã„ã¾ã™"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: 警告: 誤ã£ãŸå½¢å¼ã® .lf è¦æ±‚ã§ã™ã€‚無視ã—ã¦ã„ã¾ã™"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: 警告: .lf è¦æ±‚ã®ä¸­ã«æ”¹è¡ŒãŒã‚ã‚Šã¾ã™ã€‚無視ã—ã¦ã„ã¾ã™"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: roff è¦æ±‚ã®ä¸­ã«çµ‚端ã•ã‚Œã¦ã„ãªã„クォートãŒã‚ã‚Šã¾ã™"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "互æ›æ€§ã®ãŸã‚ã®ã‚¹ã‚¤ãƒƒãƒã§ã™ (無視ã•ã‚Œã¾ã™)"
+#~ msgid "manpath list too long"
+#~ msgstr "manpath リストãŒé•·ã™ãŽã¾ã™"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "一時ディレクトリを作æˆã§ãã¾ã›ã‚“"
diff --git a/po/man-db.pot b/po/man-db.pot
index 289a31e4..626b4a0d 100644
--- a/po/man-db.pot
+++ b/po/man-db.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: man-db 2.8.5\n"
+"Project-Id-Version: man-db 2.8.6\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,59 +18,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr ""
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr ""
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr ""
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr ""
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr ""
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr ""
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr ""
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr ""
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] ""
msgstr[1] ""
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr ""
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr ""
@@ -90,180 +85,185 @@ msgstr ""
msgid "fatal: unable to insert version identifier into %s"
msgstr ""
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr ""
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr ""
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr ""
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr ""
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr ""
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr ""
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr ""
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr ""
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
"Updating cat files for section %s of man hierarchy %s\n"
msgstr ""
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr ""
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr ""
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr ""
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr ""
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr ""
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr ""
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr ""
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr ""
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr ""
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr ""
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr ""
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr ""
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr ""
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr ""
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr ""
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr ""
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr ""
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr ""
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr ""
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr ""
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr ""
@@ -274,332 +274,332 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] ""
msgstr[1] ""
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr ""
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr ""
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr ""
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr ""
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr ""
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr ""
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr ""
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr ""
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr ""
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr ""
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr ""
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr ""
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr ""
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr ""
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr ""
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr ""
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr ""
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr ""
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr ""
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr ""
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr ""
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr ""
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr ""
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr ""
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr ""
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr ""
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr ""
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr ""
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr ""
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr ""
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr ""
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr ""
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr ""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr ""
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr ""
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr ""
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
msgstr ""
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr ""
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr ""
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr ""
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr ""
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr ""
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr ""
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
msgstr ""
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr ""
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr ""
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr ""
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr ""
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr ""
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr ""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr ""
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr ""
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr ""
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr ""
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr ""
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr ""
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr ""
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
"cannot write to %s in catman mode"
msgstr ""
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr ""
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr ""
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr ""
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr ""
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr ""
@@ -612,341 +612,336 @@ msgstr ""
msgid "iconv: incomplete character at end of buffer"
msgstr ""
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr ""
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr ""
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr ""
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr ""
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr ""
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr ""
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr ""
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr ""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr ""
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr ""
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr ""
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr ""
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr ""
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr ""
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr ""
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr ""
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr ""
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr ""
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] ""
msgstr[1] ""
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] ""
msgstr[1] ""
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] ""
msgstr[1] ""
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] ""
msgstr[1] ""
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr ""
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr ""
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr ""
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr ""
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr ""
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr ""
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr ""
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr ""
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr ""
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr ""
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr ""
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr ""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr ""
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr ""
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr ""
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr ""
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr ""
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr ""
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr ""
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr ""
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr ""
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr ""
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr ""
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr ""
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr ""
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr ""
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr ""
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr ""
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr ""
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr ""
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr ""
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr ""
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr ""
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr ""
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr ""
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr ""
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr ""
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr ""
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr ""
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr ""
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index 3b4a5011..02907212 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 1fa1551c..c61addc2 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db-2.5.7-pre1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2009-11-16 08:36+0100\n"
"Last-Translator: Erwin Poeze <erwin.poeze@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "kan de effectieve UID niet instellen"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "de SETUID-gebruiker '%s' bestaat niet"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "kan eigenaar van %s niet wijzigen"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatale fout: reguliere expressie '%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "multisleutel %s bestaat niet"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "kan index-cache %s niet vergrendelen"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "index-cache %s is beschadigd"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "kan sleutel %s niet vervangen"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, fuzzy, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "slechts %d velden in de inhoud"
msgstr[1] "slechts %d velden in de inhoud"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "onjuiste treffer voor multisleutel %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Database %s is beschadigd; maak deze opnieuw aan met 'mandb --create'"
@@ -91,64 +86,64 @@ msgstr "waarschuwing: %s heeft versie %s, terwijl %s verwacht wordt\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatale fout: kan geen versie-indicatie invoegen in %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN-GEGEVENSBANK]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "De standaard man-database is %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "debug-uitvoer produceren"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "kan %s niet openen om te lezen"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECTIE...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "PAD"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "pad waarin naar man-pagina's gezocht moet worden"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "BESTAND"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "te gebruiken configuratiebestand"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "'man' is mislukt met afsluitwaarde %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "kan database %s niet lezen"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "NULL-inhoud voor sleutel %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,118 +152,123 @@ msgstr ""
"\n"
"Bijwerken van cat-bestanden voor sectie %s van man-hiërachie %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "kan in %s niet schrijven"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "kan %s niet bijwerken"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "waarschuwing: botsende subsecties in %s/man%s/%s.%s*"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "kan index-cache %s niet bijwerken"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
"waarschuwing: %s: onjuiste symbolische koppeling of onjuist roff-'.so'-"
"verzoek"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "waarschuwing: %s: leeg bestand wordt genegeerd"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "waarschuwing: %s: ontleden van %s(%s) voor 'whatis' is mislukt"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "kan map %s niet doorzoeken"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "kan eigenaar van %s niet wijzigen"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "waarschuwing: kan cat-map %s niet aanmaken"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "kan de toegangsrechten van %s niet wijzigen"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "kan niet naar map %s gaan"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "kan index-cache %s niet aanmaken"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Bijwerken van index-cache voor pad '%s/%s'. Even geduld..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "voltooid.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Verwijderen van oude databaseitems uit %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "waarschuwing: opslaan van item voor %s(%s) is mislukt"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "waarschuwing: %s: onjuiste bestandsnaam wordt genegeerd"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "PAD SECTIE NAAM"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "SUBSECTIE"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "het zoeken beperken tot deze subsectie"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "hoofdletterongevoelig naar pagina's zoeken"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "hoofdlettergevoelig naar pagina's zoeken"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "paginanaam als reguliere expressies begrijpen"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "de paginanaam bevat jokertekens"
@@ -279,193 +279,193 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "waarschuwing: de 'whatis' voor %s is meer dan %d bytes -- afgekapt"
msgstr[1] "waarschuwing: de 'whatis' voor %s is meer dan %d bytes -- afgekapt"
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "kan %s niet openen"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "BESTAND..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Standaard zijn de opties '--man' en '--whatis'."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "argumenten begrijpen als 'man'-pagina's"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "argumenten begrijpen als 'cat'-pagina's"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "'whatis'-informatie tonen"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "de gegokte reeks voorbewerkingsfilters tonen"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODERING"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "uitvoer in deze codering produceren"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: opties gaan niet samen"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "opdracht eindigde met afsluitwaarde %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECTIE] PAGINA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "alle opties op hun standaardwaarden terugzetten"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "WAARSCHUWINGEN"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "(deze) waarschuwingen van 'groff' doorgeven"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Werkingsmodus:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "als 'whatis' fungeren"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "als 'apropos' fungeren"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "zoek de tekst in alle pagina's"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "de locatie van man-pagina's tonen"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "de locatie van cat-pagina's tonen"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "paginanaam als lokale bestandsnaam begrijpen"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "(gebruikt door 'catman' bij heropmaken)"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "brontekst uitvoeren omgezet naar deze codering"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Gevonden man-pagina's:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "TAALCODE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "te gebruiken taalregio voor deze zoekopdracht"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEEMNAAM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "man-pagina's van deze andere Unix-systemen tonen"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "SECTIES"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "te doorzoeken secties (scheiden met dubbele punten)"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "alle pagina's tonen die voldoen aan de reguliere expressie"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "alle pagina's tonen die voldoen aan het jokerteken"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"laat --regex en --wildcard alleen paginanamen weergeven, geen beschrijvingen"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "alle passende pagina's vinden, niet alleen eerste"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "een cache-consistentiecontrole afdwingen"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "probeer geen subpagina's, b.v. 'man foo bar' => 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Uitvoerbesturing:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PROGRAMMA"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "dit programma gebruiken om de uitvoer te tonen"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "TEKENREEKS"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "deze tekens als prompt van 'less' gebruiken"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "een ASCII-versie van sommige Latin1-tekens tonen"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "woordafbreken uitschakelen"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "uitvullen uitschakelen"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -475,34 +475,34 @@ msgstr ""
" e - [n]eqn p - pic t - tbl\n"
" g - grap r - refer v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "'%s' gebruiken om pagina's op te maken"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "APPARAAT"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "'%s' gebruiken met dit apparaat"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "PROGRAMMA"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "'%s' of PROGRAMMA gebruiken voor HTML-uitvoer"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUTIE"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -510,81 +510,81 @@ msgstr ""
"'groff' gebruiken en uitvoer tonen via 'gxditview';\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "'groff' gebruiken en \"ditroff\" laten produceren"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Er is geen pagina over %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Of anders: welke man-pagina wilt u zien uit sectie %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Welke man-pagina wilt u zien?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Er is geen pagina over %s in sectie %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Zie '%s' voor hulp als man-pagina's niet beschikbaar zijn.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "onbekende preprocessor '%c' wordt genegeerd"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "kan %s niet hernoemen naar %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "kan tijdsstempels van %s niet zetten"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "kan %s niet verwijderen"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "kan geen tijdelijk cat-bestand aanmaken voor %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "kan geen tijdelijk map aanmaken"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "kan tijdelijk bestand %s niet openen"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "kan map %s niet verwijderen"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- volgende: %s [ Enter=zien | Ctrl-D=overslaan | Ctrl-C=afsluiten ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"kan niet naar %s schrijven in 'catman'-modus"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Kan %s niet omzetten naar een cat-naam"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: vertrouwen op 'whatis'-referenties wordt ontraden\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "'mandb' is mislukt met afsluitwaarde %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "**interne fout**: kandidaattype %d valt buiten bereik"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Handleidingspagina "
@@ -626,108 +626,108 @@ msgstr "kan niet naar standaarduitvoer schrijven"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: onvolledig teken aan eind van buffer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CODERING[:...] -t CODERING [BESTANDSNAAM]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODERING[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "mogelijke codering(en) van originele tekst"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CODERING"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codering van de uitvoer"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "minder waarschuwingen produceren"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "specificatie van een invoercodering ontbreekt"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "specificatie van een uitvoercodering ontbreekt"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPAD]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "minder waarschuwingen produceren"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "losse cat-bestanden niet aan database toevoegen"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "verouderde items niet uit database verwijderen"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "alleen gebruikersdatabase produceren"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "database niet bijwerken maar opnieuw aanmaken"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "de man-pagina's op correctheid controleren"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "BESTAND"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "alleen het item voor dit bestand bijwerken"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "kan %s niet verwijderen"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "kan niet naar %s schrijven"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "kan niet uit %s lezen"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Verwerken van pagina's onder %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, fuzzy, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Zoeken naar losse cat-bestanden onder %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"waarschuwing: geen 'MANDB_MAP'-opdrachten in %s; uw man-pad wordt gebruikt"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, fuzzy, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -738,240 +738,238 @@ msgstr[1] ""
"%d man-mappen bevatten nieuwere pagina's,\n"
"%d man-pagina's werden toegevoegd.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, fuzzy, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] " Handleidingspagina "
msgstr[1] " Handleidingspagina "
-#: src/mandb.c:925
+#: src/mandb.c:929
#, fuzzy, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d losse cat-bestanden werden toegevoegd.\n"
msgstr[1] "%d losse cat-bestanden werden toegevoegd.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, fuzzy, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d verouderde databaseitems werden verwijderd.\n"
msgstr[1] "%d verouderde databaseitems werden verwijderd.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Geen databases aangemaakt."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "de inhoud van man-pad-configuratiebestand %s is onbegrijpelijk"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "waarschuwing: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "waarschuwing: %s is geen map"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "man-pad-lijst is te lang"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "waarschuwing: $PATH is niet ingesteld"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "waarschuwing: $PATH is leeg"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "waarschuwing: $MANPATH is ingesteld -- %s wordt voorgevoegd"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "waarschuwing: $MANPATH is ingesteld -- %s wordt achtergevoegd"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "waarschuwing: $MANPATH is ingesteld -- %s wordt ingevoegd"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "waarschuwing: $MANPATH is ingesteld -- %s wordt genegeerd"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "kan mappenlijst '%s' niet ontleden"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "kan man-pad-configuratiebestand %s niet openen"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "waarschuwing: vereiste map %s bestaat niet"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "kan huidige map niet bepalen"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "waarschuwing: %s begint niet met %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "de relatieve cat-paden weergeven"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "het volledige globale man-pad weergeven"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"waarschuwing: geen algemeen man-pad ingesteld in configuratiebestand %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "waarschuwing: %s is een doelloze symbolische koppeling"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "kan %s niet herleiden"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Zoeken naar losse cat-bestanden onder %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "waarschuwing: kan index-cache %s niet bijwerken"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s refereert aan zichzelf"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "SLEUTELWOORD..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "De optie '--regex' is standaard."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "breedsprakige waarschuwingen produceren"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "sleutelwoorden als reguliere expressies begrijpen"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "sleutelwoorden moeten exact overeenkomen"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "de sleutelwoorden bevatten jokertekens"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "alle sleutelwoorden moeten gevonden worden"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "de uitvoer niet aan de terminalbreedte aanpassen"
-#: src/whatis.c:131
+#: src/whatis.c:134
#, fuzzy
msgid "search only these sections (colon-separated)"
msgstr "alleen in deze sectie zoeken"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "te gebruiken taalregio voor deze zoekopdracht"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s wat?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "waarschuwing: %s bevat een pointer-lus"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(onderwerp onbekend)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: niets gevonden.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: '.so'-verzoeken zijn te diep genest of recursief"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: waarschuwing: '.so'-verzoek is mislukt"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: waarschuwing: regeleindeteken in '.so'-verzoek -- genegeerd"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: waarschuwing: onjuist '.lf'-verzoek -- genegeerd"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: waarschuwing: regeleindeteken in '.lf'-verzoek -- genegeerd"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: onafgesloten aanhaling in 'roff'-verzoek"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "compatibiliteitsoptie (genegeerd)"
+#~ msgid "manpath list too long"
+#~ msgstr "man-pad-lijst is te lang"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "kan geen tijdelijk map aanmaken"
diff --git a/po/pl.gmo b/po/pl.gmo
index 7b94bfa6..e9e7c8fb 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index ad22e03a..14a59e0d 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-21 20:46+0100\n"
"Last-Translator: Robert Luberda <robert@debian.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -20,47 +20,42 @@ msgstr ""
"|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 2.0\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "nie można ustawić efektywnego identyfikatora użytkownika"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "użytkownik \"%s\" nie istnieje"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "nie można zmienić właściciela %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "błąd krytyczny: wyrażenie regularne \"%s\": %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "wielowymiarowy klucz %s nie istnieje"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "nie można zablokować bufora indeksu %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "bufor indeksu %s uszkodzony"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "nie można zamienić klucza %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
@@ -68,12 +63,12 @@ msgstr[0] "tylko %d pole w zmiennej content"
msgstr[1] "tylko %d pola w zmiennej content"
msgstr[2] "tylko %d pól w zmiennej content"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "błąd pobierania klucza wielowymiarowego %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr ""
@@ -95,65 +90,65 @@ msgstr "ostrzeżenie: %s jest w wersji %s, podczas gdy oczekiwano %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "błąd krytyczny: nie można dodać identyfikatora wersji do %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BAZA DANYCH MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Domyślną bazą danych jest %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "wyświetla komunikaty diagnostyczne"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "nie można otworzyć %s do odczytu"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SEKCJA...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "ŚCIEŻKA"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "ustawia ścieżkę wyszukiwania stron podręcznika na ŚCIEŻKĘ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "PLIK"
#
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "używa tego pliku konfiguracyjnego użytkownika"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "polecenie man zakończyło się błędem %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "nie można odczytać bazy danych %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Pusta (NULL) zawartość klucza %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -162,117 +157,122 @@ msgstr ""
"\n"
"Aktualizowanie preformatowanych stron w sekcji %s hierarchii stron %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "nie można zapisać w %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "nie można zaktualizować %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "ostrzeżenie: %s/man%s/%s.%s*: konkurujące rozszerzenia"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "nie można zaktualizować bufora indeksu %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
"ostrzeżenie: %s złe dowiązanie symboliczne lub błędne żądanie \".so\" ROFF"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "ostrzeżenie: %s: ignorowanie pustego pliku"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "ostrzeżenie: %s: przetwarzanie whatis %s(%s) się nie powiodło"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "nie można przeszukać katalogu %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "nie można zmienić właściciela %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "ostrzeżenie: błąd tworzenia katalogu preformatowanych stron %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "nie można zmienić praw dostępu %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "nie można przejść do katalogu %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "nie można utworzyć bufora indeksu %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Aktualizowanie bufora indeksu dla ścieżki \"%s/%s\". Proszę czekać..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "zakończono.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Usuwanie starych wpisów w bazie danych %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "ostrzeżenie: błąd podczas zachowywania wpisu dla %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "ostrzeżenie: %s: ignorowanie niepoprawnej nazwy pliku"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "ŚCIEŻKA SEKCJA NAZWA"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "ROZSZERZENIE"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "ogranicza wyszukiwanie do podanego typu ROZSZERZENIA"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "wyszukuje strony ignorując wielkość liter (domyślnie)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "wyszukuje strony biorąc pod uwagę wielkość liter"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpretuje każde nazwę strony jako wyr. regularne"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "nazwa strony zawiera znaki dopasowywania"
@@ -286,195 +286,195 @@ msgstr[1] ""
msgstr[2] ""
"ostrzeżenie: whatis dla argumentu %s przekracza %d bajtów, obcinanie."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "nie można otworzyć %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "PLIK..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Domyślnymi opcjami są --man i --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "przetwarza jako stronę podręcznika"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "przetwarza jako stronÄ™ cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "pokazuje informacje whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "pokazuje serię odgadniętych filtrów preprocesora"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KODOWANIE"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "używa wybranego wyjściowego kodowania znaków"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: niekompatybilne opcje"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "polecenie zwróciło kod błędu %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SEKCJA] STRONA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "przywraca wszystkim opcjom ich wartości domyślne"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "OSTRZEŻENIA"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "włącza ostrzeżenia groffa"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Główne tryby działania:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "odpowiednik whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "odpowiednik apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "szuka tekstu we wszystkich stronach"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "wyświetla lokalizacje stron(y) podręcznika"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "wyświetla lokalizacje preformatowanych plików cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpretuje argumenty STRONA jako nazwy lokalnych plików"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
"używane przez catman do ponownego sformatowania przestarzałych stron cat"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "wypisuje stronę źródłową przekształconą do KODOWANIA"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Wyszukiwanie stron podręcznika ekranowego:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "UST_JĘZYKOWE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "określa ustawienia językowe tego wyszukiwania stron"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "używa stron podręcznika z innych systemów"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "używa rozdzielonej dwukropkami listy sekcji"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "wyświetla wszystkie strony pasujące do wyr. regularnego"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "wyświetla wszystkie strony pasujące do maski dopasowania"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"powoduje, że --regex i --wildcard pasują tylko do nazw stron, a nie do opisów"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "wyszukuje wszystkie pasujące strony podręcznika"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "wymusza sprawdzanie spójności"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "nie próbuje podstron, np. \"man foo bar\" => \"man foo-bar\""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Kontrolowanie sformatowanego wyjścia:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "używa programu PAGER do wyświetlenia wyjścia"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "ÅAŃCUCH"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "ustawia linię zachęty programu \"less\""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "wyświetla odpowiedniki ASCII pewnych znaków latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "wyłącza podział wyrazów na końcu linii"
#
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "wyłącza wyrównywanie linii"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -484,34 +484,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "używa %s do formatowania stron"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "URZÄ„DZENIE"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "używa %s z podanym urządzeniem"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "PRZEGLÄ„DARKA"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "używa %s lub PRZEGLĄDARKI do wyświetlenia wyjścia w HTML-u"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "ROZDZIELCZOŚĆ"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -519,84 +519,84 @@ msgstr ""
"używa groffa i wyświetla przez gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "używa groffa i wymusza na nim wyprodukowanie ditroffa"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Brak podręcznika dla %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Albo: jakiej strony z sekcji %s podręcznika potrzebujesz?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Jakiej strony podręcznika potrzebujesz?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Brak podręcznika dla %s w sekcji %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Proszę przeczytać \"%s\", aby uzyskać pomoc,\n"
" gdy strony podręcznika nie są dostępne.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ignorowanie nieznanego preprocesora \"%c\""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "nie można zmienić nazwy %s na %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "nie można ustawić czasów na %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "nie można usunąć %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "nie można utworzyć tymczasowego pliku cat dla %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "nie można utworzyć katalogu tymczasowego"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "nie można otworzyć pliku tymczasowego %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "nie można usunąć katalogu %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- następna: %s [ przeglądaj (return) | pomiń (Ctrl-D) | zakończ (Ctrl-"
"C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -605,28 +605,28 @@ msgstr ""
"\n"
"nie można zapisać do %s w trybie catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Nie można skonwertować %s do nazwy preformatowanej strony podręcznika"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: poleganie na odnośnikach whatis jest niezalecane\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "polecenie mandb zakończyło się błędem %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr ""
"błąd wewnętrzny: typ kandydata %d poza zakresem dopuszczalnych wartości"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Strona podręcznika ekranowego "
@@ -639,107 +639,107 @@ msgstr "nie można pisać na standardowe wyjście"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: niekompletny znak na końcu bufora"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KOD[:...] -t KOD [PLIK]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KOD[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "możliwe kodowania oryginalnego tekstu"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KOD"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "kodowanie wyjścia"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "podaje mniej ostrzeżeń"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "należy podać kodowanie wejścia"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "należy podać kodowanie wyjścia"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPATH]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "tryb cichy, poza ostrzeżeniami o nieprawidłowościach"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "nie szuka i nie dodaje zabłąkanych plików cat do db"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "nie czyści przestarzałych wpisów z bazy danych"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "tworzy tylko bazy danych użytkownika"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "tworzy nowe bazy danych, zamiast aktualizować istniejące"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "sprawdza poprawność stron podręcznika"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NAZWA_PLIKU"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "aktualizuje wpis dotyczÄ…cy tej nazwy pliku"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "nie można usunąć %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "nie można pisać do %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "nie można czytać z %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Przetwarzanie stron podręcznika w %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Usuwanie przestarzałego katalogu stron preformatowanych %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "ostrzeżenie: w %s brak dyrektyw MANDB_MAP, używanie ścieżki manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -747,7 +747,7 @@ msgstr[0] "%d podkatalog man zawierał nowsze strony podręcznika.\n"
msgstr[1] "%d podkatalogi man zawierały nowsze strony podręcznika.\n"
msgstr[2] "%d podkatalogów man zawierało nowsze strony podręcznika.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
@@ -755,7 +755,7 @@ msgstr[0] "Dodano %d stronę podręcznika.\n"
msgstr[1] "Dodano %d strony podręcznika.\n"
msgstr[2] "Dodano %d stron podręcznika.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
@@ -763,7 +763,7 @@ msgstr[0] "Dodano %d zabłąkaną preformatowaną stronę podręcznika.\n"
msgstr[1] "Dodano %d zabłąkane preformatowane strony podręcznika.\n"
msgstr[2] "Dodano %d zabłąkanych preformatowanych stron podręcznika.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
@@ -771,218 +771,216 @@ msgstr[0] "Usunięto %d stary wpis z bazy danych.\n"
msgstr[1] "Usunięto %d stare wpisy z bazy danych.\n"
msgstr[2] "Usunięto %d starych wpisów z bazy danych.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Nie utworzono żadnej bazy danych."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "plik konfiguracyjny manpath %s jest pozbawiony sensu"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "ostrzeżenie: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "ostrzeżenie: %s nie jest katalogiem"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "zbyt długa lista ścieżek poszukiwań stron podręcznika"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "ostrzeżenie: nie ustawiono zmiennej $PATH"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "ostrzeżenie: zmienna $PATH jest pusta"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "ostrzeżenie: zmienna $MANPATH jest ustawiona, dodawanie %s na początku"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "ostrzeżenie: zmienna $MANPATH jest ustawiona, dodawania %s na końcu"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "ostrzeżenie: zmienna $MANPATH jest ustawiona, wstawianie %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "ostrzeżenie: zmienna $MANPATH jest ustawiona, %s zignorowane"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "nie można przetworzyć listy katalogów \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "nie można otworzyć pliku konfiguracyjnego %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "ostrzeżenie: obowiązkowy katalog %s nie istnieje"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "nie można określić katalogu bieżącego"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "ostrzeżenie: %s nie zaczyna się od %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "wyświetla względne ścieżki cat"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "pokazuje całą globalną ścieżkę manpath"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"ostrzeżenie: w pliku konfiguracyjnym %s nie ustawiono systemowych ścieżek man"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "ostrzeżenie: %s jest wiszącym dowiązaniem symbolicznym"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "nie można rozwiązać %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Poszukiwanie nie powiÄ…zanych stron preformatowanych w %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "ostrzeżenie: nie można zaktualizować bufora indeksu %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s odwołuje się do samego siebie"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "SÅOWO_KLUCZ..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Opcja --regex jest domyślnie włączona."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "wyświetla szczegółowe ostrzeżenia"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpretuje każde słowo kluczowe jako wyr. regularne"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "szuka każdego słowa kluczowego dla pełnego dopasowania"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "słowa kluczowe zawierają znaki dopasowywania"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "żąda dopasowania wszystkich słów kluczowych"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "nie przycina wyjścia do szerokości terminalu"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "przeszukuje tylko te sekcje (rozdzielone średnikami)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "ustawienia językowe tego wyszukiwania"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "co %s?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "ostrzeżenie: %s zawiera pętlę wskaźników"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(temat nieznany)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nic odpowiedniego.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: żądania.so zbyt głębokie lub rekurencyjne"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: ostrzeżenie: błędne żądanie .so"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: ostrzeżenie: znak nowej linii w żądaniu .so, ignorowanie"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: ostrzeżenie: zniekształcone żądanie .lf, ignorowanie"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: ostrzeżenie: znak nowej linii w żądaniu .lf, ignorowanie"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: niedopasowany cudzysłów w żądaniu roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "ignorowana, dla zachowania kompatybilności"
+#~ msgid "manpath list too long"
+#~ msgstr "zbyt długa lista ścieżek poszukiwań stron podręcznika"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "nie można przywrócić poprzedniego katalogu roboczego"
diff --git a/po/pt.gmo b/po/pt.gmo
index 45780251..c961ffa1 100644
--- a/po/pt.gmo
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
index 50e15252..66da12f8 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-10-11 19:40+0100\n"
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\\n\n"
"X-Generator: Gtranslator 2.91.7\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "impossível definir uid efectiva"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "o utilizador setuid \"%s\" não existe"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "impossível chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: regex `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "chave múltipla %s não existe"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "impossível bloquear a cache de índice %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "cache de índice %s corrompida"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "impossível substituir chave %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "só %d campo no conteúdo"
msgstr[1] "só %d campos no conteúdo"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "má obtenção em chave múltipla %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Base de dados %s corrompida; refaça-a com mando --create"
@@ -91,64 +86,64 @@ msgstr "aviso: %s 'versão %s, esperada %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: impossível inserir identificador de versão em %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BASE DE DADOS MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "A base de dados man predefinida é %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "emite mensagens de depuração"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "Impossível abrir %s para leitura"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SECÇÃO...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CAMINHO"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "define caminho para páginas do manual para CAMINHO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FICHEIRO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "usa este ficheiro de configuração do utilizador"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "comando man falhou com estado de saída %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "impossível ler base de dados %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Conteúdo NULL para chave: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"A actualizar ficheiros cat para a secção %s da hierarquia man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "impossível escrever dentro de %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "impossível actualizar %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "aviso: %s/man%s/%s.%s*: extensões concorrentes"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "impossível actualizar a cache de índice %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "aviso: %s: má ligação simbólica ou pedido ROFF \".so\""
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "aviso: %s: a ignorar ficheiro vazio"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "aviso: %s: falha na análise whatis para %s(%s)"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "impossível procurar na pasta %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "impossível chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "aviso: impossível criar catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "impossível chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "impossível mudar para a pasta %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "impossível criar cache de índice %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "A actualizar cache de índice para caminho \"%s/%s\". Aguarde..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "feito.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "A purgar entradas da base de dados antigas em %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "aviso: falha ao armazenar entrada para %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "aviso: %s: a ignorar nome de ficheiro fictício"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CAMINHO SECÇÃO NOME"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSÃO"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "limita procura a extensão de tipo EXTENSÃO"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "procura páginas sem diferenciar maiúsculas (predefinição)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "procura páginas diferenciando maiúsculas"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreta o nome da página como regex"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "o nome da página contém caracteres universais"
@@ -277,194 +277,194 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "aviso: whatis para %s excede %d byte, a truncar"
msgstr[1] "aviso: whatis para %s excede %d bytes, a truncar."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "impossível abrir %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FICHEIRO..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "As predefinições são --man e --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "analisa como página man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "analisa como página cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "mostra informação whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "mostra série adivinhada de filtros de pré-processamento"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODIFICAÇÃO"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "usa a codificação de saída seleccionada"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: opções incompatíveis"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "comando saiu com estado %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SECÇÃO] PÃGINA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "repõe as predefinições de todas as opções"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVISOS"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "activa avisos de groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Principais modos de operação:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "equivalente a whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "equivalente a apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "procura texto em todas as páginas"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "imprime localização física da(s) página(s) man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "imprime localização física da(s) página(s) cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreta argumento(s) de PÃGINA como nome(s) de ficheiros local(is)"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "usado por catman para reformatar páginas cat fora do prazo"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "imprime página fonte codificada em CODIFICAÇÃO"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Procurar páginas do manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "IDIOMA"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "define o idioma para esta procura man em particular"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEMA"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "usa páginas do manual de outros sistemas"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "usa lista de secções separadas por vírgula"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "mostra todas as páginas que cumpram a regex"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "mostra todas as páginas que cumpram o carácter universal"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"faz com que --regex e --wildcard correspondam só a nomes de página, não "
"descrições"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "encontra todas as páginas do manual correspondentes"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "força uma verificação de consistência da cache"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "não tenta sub-páginas, e.g. \"man foo bar\" => \"man foo-bar\""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "A controlar saída formatada:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGINADOR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "usa o programa PAGINADOR para mostrar a saída"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CADEIA"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "fornece um prompt ao paginador \"less\""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "mostra tradução ASCII de certos caracteres latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "desliga a hifenização"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "desliga a justificação"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -474,34 +474,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "usa %s para formatar as páginas"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "DISPOSITIVO"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "usa %s com o dispositivo seleccionado"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "NAVEGADOR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "usa %s ou NAVEGADOR para mostrar saída HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUÇÃO"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -509,82 +509,82 @@ msgstr ""
"usa o groff e mostra através de gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "usa o groff e força-o a produzir ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Sem entrada de manual para %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(em alternativa, que página do manual deseja para a secção %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Que página do manual deseja?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Sem entrada de manual para %s na secção %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Veja \"%s\" para ajuda quando as páginas do manual não estão disponíveis.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "a ignorar pré-processador \"%c\" desconhecido"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "impossível renomear %s para %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "impossível definir horas em %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "impossível desligar %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "impossível criar cat temporário para %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "impossível criar pasta temporária"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "impossível abrir ficheiro temporário %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "impossível remover pasta %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- seguinte: %s [ ver (return) | saltar (Ctrl-D) | sair (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"impossível escrever em %s em modo catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Impossível converter %s para nome cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: confiar em refs whatis está obsoleto\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "comando mandb falhou com estado de saída %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "erro interno: tipo de candidato %d fora do intervalo"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Página do manual "
@@ -626,345 +626,343 @@ msgstr "impossível escrever na saída padrão"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: carácter incompleto no final do buffer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CÓDIGO[:...] -t CÓDIGO [NOMEFICHEIRO]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CÓDIGO[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "possíveis codificações do texto original"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CÓDIGO"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codificação para saída"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produz menos avisos"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "tem de especificar uma codificação de entrada"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "tem de especificar uma codificação de saída"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[CAMINHOMAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "trabalha em silêncio, excepto para aviso \"fictício\""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "não procura ou adiciona cats perdidos às bases de dados"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "não purga entradas obsoletas das bases de dados"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produz só bases de dados do utilizador"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "cria bases de dados de raiz, em vez de actualizar"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "verificar páginas do manual por correcção"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOMEFICHEIRO"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "actualiza só a entrada para este nome de ficheiro"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "impossível remover %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "impossível escrever em %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "impossível ler de %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "A processar páginas do manual sob %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "A remover pasta cat obsoleta %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "aviso: sem directivas MANDB_MAP em %s, a usar o seu manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d sub-pasta man continha páginas do manual mais recentes.\n"
msgstr[1] "%d sub-pastas man continham páginas do manual mais recentes.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d página do manual adicionada.\n"
msgstr[1] "%d páginas do manual adicionadas.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d cat perdido adicionado.\n"
msgstr[1] "%d cats perdidos adicionados.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d entrada de base de dados antiga purgada.\n"
msgstr[1] "%d entradas de base de dados antigas purgadas.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Não se criaram bases de dados."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "impossível fazer sentido do ficheiro de configuração manpath %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "aviso: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "aviso: %s não é uma pasta"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "lista manpath muito longa"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "aviso: $PATH não definido"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "aviso: $PATH vazio"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "aviso: $MANPATH definido, a prepor %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "aviso: $MANPATH definido, a anexar %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "aviso: $MANPATH definido, a inserir %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "aviso: $MANPATH definido, a ignorar %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "impossível analisar lista de pastas \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "impossível abrir o ficheiro de configuração manpath %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "aviso: pasta obrigatória %s não existe"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "impossível determinar a pasta actual"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "aviso: %s não começa com %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "mostrar catpaths relativos"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "mostrar todo o manpath global"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "aviso: sem manpath globais definidos no ficheiro de configuração %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "aviso: %s é uma ligação simbólica pendente"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "impossível resolver %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "A procurar cats perdidos sob %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "aviso: impossível actualizar a cache de índice %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s referencia-se a si própria"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "PALAVRA-CHAVE..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "A opção --regex está activa por predefinição."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "imprime mensagens de aviso verbosas"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreta cada palavra-chave como regex"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "procura cada palavra-chave por correspondência exacta"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "as palavras-chave contêm caracteres universais"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "requer que todas as palavra-chave correspondam"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "não cortar saída para a largura do terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "procurar só nestas secções (separado por dois-pontos)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "define o idioma para esta procura"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s o quê?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "aviso: %s contém um ciclo de ponteiro"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(assunto desconhecido)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nada apropriado.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: pedidos .so aninhados demais ou são recursivos"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: aviso: pedido .so falhou"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: aviso: newline em pedido .so, a ignorar"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: aviso: pedido .lf mal formado, a ignorar"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: avido: newline em pedido .lf, a ignorar"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: aspa não terminada em pedido roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "troca de compatibilidade (ignorada)"
+#~ msgid "manpath list too long"
+#~ msgstr "lista manpath muito longa"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "impossível restaurar pasta de trabalho anterior"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index dde9888f..c940f377 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index fd766fc3..16d33994 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-02-02 17:02-0200\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -25,59 +25,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 1.0.0-beta1\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "não foi possível definir o uid efetivo"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "o usuário man setuid \"%s\" não existe"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "não foi possível fazer chown em %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: regex \"%s\": %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "a multichave %s não existe"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "não foi possível travar o cache de índice %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "o cache de índice %s está corrompido"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "não foi possível substituir a chave %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "apenas %d campo no conteúdo"
msgstr[1] "apenas %d campos no conteúdo"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "busca ruim na multichave %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Banco de dados %s corrompido; reconstrua-o com mandb --create"
@@ -97,64 +92,64 @@ msgstr "aviso: %s é versão %s, esperava-se %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: não foi possível de inserir o identificador de versão em %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[BANDO-DE-DADOS MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "O banco de dados man tem como padrão %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "emite mensagens de depuração"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "não foi possível abrir %s para leitura"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[SEÇÃO...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "CAMINHO"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "define o caminho de pesquisa por páginas de manual com CAMINHO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "ARQUIVO"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "usa esse arquivo de configuração de usuário"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "o comando man falhou com estado de saída %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "não foi possível ler o banco de dados %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "conteúdo NULL para a chave: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -163,116 +158,121 @@ msgstr ""
"\n"
"Atualizando arquivos cat para seção %s da hierarquia man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "não foi possível escrever dentro de %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "não foi possível de atualizar %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "aviso: %s/man%s/%s.%s*: extensões conflitantes"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "não foi possível atualizar cache de índice %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "aviso: %s: link simbólico ruim ou requisição \".so\" ROFF"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "aviso: %s: ignorando arquivo vazio"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "aviso: %s: análise por whatis para %s(%s) falhou"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "não foi possível pesquisar no diretório %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "não foi possível fazer chown em %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "aviso: não foi possível criar o catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "não foi possível fazer chmod em %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "não foi possível mudar para o diretório %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "não foi possível criar cache de índice %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Atualizando o cache de índice para o caminho \"%s/%s\". Aguarde..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "feito.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Descartando entradas antigas de banco de dados em %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "aviso: falha ao armazenar entradas para %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "aviso: %s: ignorando nome de arquivo inválido"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "CAMINHO SEÇÃO NOME"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSÃO"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "limita a pesquisa ao tipo de extensão EXTENSÃO"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "procura por páginas sem diferenciar maiúsculo de minúsculo (padrão)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "procura por páginas diferenciando maiúsculo de minúsculo"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "interpreta o nome da páginas como uma expressão regular"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "o nome da página contém caracteres curingas"
@@ -283,194 +283,194 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "aviso: whatis para %s excede %d byte, truncando."
msgstr[1] "aviso: whatis para %s excede %d bytes, truncando."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "não foi possível abrir %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "ARQUIVO..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Os padrões são --man e --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "analisa como uma página man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "analisa como uma página cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "mostra informação whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "mostra séries adivinhadas de filtros de pré-processamento"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "CODIFICAÇÃO"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "usa a codificação de saída selecionada"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: opções incompatíveis"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "o comando saiu com status %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[SEÇÃO] PÃGINA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "redefine todas opções para seus valores padrão"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "AVISOS"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "habilita avisos do groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Modos principais de operação:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "equivalente a whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "equivalente a apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "pesquisa pelo texto em todas as páginas"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "emite localização física da(s) página(s) man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "emite localização física do(s) arquivo(s) cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "interpreta argumento(s) PÃGINA como nome(s) de arquivo(s) local(is)"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "usado por catman para reformatar páginas cat desatualizadas"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "emite a página fonte codificada em CODIFICAÇÃO"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Localizando as páginas de manual:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOCALIDADE"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "define a localidade para esta pesquisa de man em particular"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SISTEMA"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "usa páginas de manual para outros sistemas"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "usa lista de seções separada por dois-pontos"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "mostra todas as páginas que coincidem com a expressão regular"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "mostra todas as páginas que coincidem com o caractere curinga"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"faz --regex e --wildcard coincidirem apenas nomes de páginas, e não "
"descrições"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "localiza todas as páginas de manual correspondentes"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "força uma verificação de consistência de cache"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "não tenta subpáginas, ex.: \"man foo bar\" => \"man foo-bar\""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Controlando saída formatada:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGINADOR"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "usa o programa PAGINADOR para exibir a saída"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "TEXTO"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "fornece ao paginador \"less\" com uma pergunta"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "exibe a tradução ASCII de certos caracteres latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "desliga hifenização"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "desliga justificação"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -480,34 +480,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "usa %s para formatar páginas"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "DISPOSITIVO"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "usa %s com o dispositivo selecionado"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "NAVEGADOR"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "usa %s ou NAVEGADOR para exibir a saída HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "RESOLUÇÃO"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -515,82 +515,82 @@ msgstr ""
"usa groff e exibe por meio de gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "usa groff e força-o a produzir ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Nenhuma entrada de manual para %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Alternativamente, qual a página de manual desejada da seção %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Qual a página de manual desejada?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Nenhuma entrada de manual para %s na seção %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Veja \"%s\" para ajuda quando as páginas de manual não estiverem "
"disponíveis.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ignorando pré-processador desconhecido \"%c\""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "não foi possível renomear %s para %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "não foi possível definir os horários de %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "não foi possível remover o link %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "não foi possível criar o cat temporário para %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "não foi possível criar o diretório temporário"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "não foi possível abrir o arquivo temporário %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "não foi possível remover o diretório %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr "--Man-- próxima: %s [ ver (Enter) | pular (Ctrl-D) | sair (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -599,27 +599,27 @@ msgstr ""
"\n"
"não foi possível escrever em %s no modo catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Não foi possível converter %s para um nome cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: o uso de whatis refs está obsoleto\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "o comando mandb falhou com status de saída %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "erro interno: tipo de candidato %d fora da faixa"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Página de manual "
@@ -632,347 +632,345 @@ msgstr "não foi possível escrever para a saída padrão"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: caractere incompleto no final do buffer"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CÓDIGO[:...] -t CÓDIGO [NOME-DE-ARQUIVO]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CÓDIGO[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "codificações possíveis do texto original"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CÓDIGO"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "codificação para a saída"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "produz menos avisos"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "deve-se especificar uma codificação de entrada"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "deve-se especificar uma codificação de saída"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[CAMINHO-MAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "trabalha silenciosamente, exceto para aviso de erro"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "não procura ou adiciona cats errantes aos bancos de dados"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "não descarta entradas obsoletas dos bancos de dados"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "produz apenas bancos de dados de usuário"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "cria banco de dados do zero, ao invés de atualizá-los"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "verifica a exatidão de páginas de manual"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "NOME-DE-ARQUIVO"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "atualiza apenas a entrada deste nome de arquivo"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "não foi possível remover %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "não posso escrever em %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "não foi possível ler de %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Processando as páginas de manual sob %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Removendo diretório cat obsoleto %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "aviso: nenhuma diretiva MANDB_MAP em %s, usando o seu caminho man"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d subdiretório man continha páginas de manual novas.\n"
msgstr[1] "%d subdiretórios man continham páginas de manual novas.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d página de manual foi adicionada.\n"
msgstr[1] "%d páginas de manual foram adicionadas.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d cat errante foi adicionado.\n"
msgstr[1] "%d cats errantes foram adicionados.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d entrada antiga no banco de dados foi descartada.\n"
msgstr[1] "%d entradas antigas no banco de dados foram descartadas.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Nenhum banco de dados criado."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "não há sentido algum no arquivo de configuração de caminho man %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "aviso: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "aviso: %s não é um diretório"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "lista de caminho man muito longa"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "aviso: $PATH não definido"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "aviso: $PATH vazio"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "aviso: $MANPATH definido, acrescentando %s ao início"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "aviso: $MANPATH definido, acrescentando %s ao final"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "aviso: $MANPATH definido, inserindo %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "aviso: $MANPATH definido, ignorando %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "não foi possível analisar a lista de diretórios \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "não foi possível abrir o arquivo de configuração do caminho man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "aviso: diretório obrigatório %s não existe"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "não foi possível determinar o diretório atual"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "aviso: %s não começa com %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "mostra caminhos cat relativos"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "mostra o caminho man global inteiro"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"aviso: nenhum caminho man global definido no arquivo de configuração %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "aviso: %s é um link simbólico perdido"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "não foi possível resolver %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Verificando por cats errantes sob %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "aviso: não foi possível atualizar o cache de índice %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s referencia a si mesmo"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "PALAVRA-CHAVE..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "A opção --regex está habilitada por padrão."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "emite mensagens de aviso detalhadas"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "interpreta cada palavra-chave como uma expressão regular"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "pesquisa cada palavra-chave por correspondência exata"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "a(s) palavra-chave(s) não podem conter caracteres coringas"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "exige correspondência de todas as palavra-chaves"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "não corta a saída para a largura do terminal"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "pesquisa apenas nestas seções (separadas por dois-pontos)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "define a localidade para esta pesquisa"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s o quê?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "aviso: %s contém um laço de ponteiros"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(assunto desconhecido)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nada apropriado.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
"%s:%d: requisições de .so aninhadas com muita profundidade ou são recursivas"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: aviso: requisição .so falhou"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: aviso: nova-linha na requisição de .so, ignorando"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: aviso: requisição de .lf malformada, ignorando"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: aviso: nova-linha na requisição de .lf, ignorando"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: aspas não terminadas na requisição de roff"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "troca de compatibilidade (ignorado)"
+#~ msgid "manpath list too long"
+#~ msgstr "lista de caminho man muito longa"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "não foi possível restaurar o diretório de trabalho anterior"
diff --git a/po/ro.gmo b/po/ro.gmo
index 83b109cd..fbed4dbe 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 1c945ce6..98ec79c5 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.4.2-pre1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2003-10-27 08:40+0200\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -16,59 +16,54 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "nu se poate seta uid efectiv"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "utilizatorul man setuidat \"%s\" nu existã"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "nu se poate face chown pe %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "fatal: regex `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "multi key %s nu existã"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "nu se poate face lock pe index cache %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "index cache %s este corupt"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "nu s-a putut înlocui cheia %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, fuzzy, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "numai %d câmpuri în conþinut"
msgstr[1] "numai %d câmpuri în conþinut"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "aducere(fetch) incorectã în multi chei %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Baza de date %s e coruptã; reconstruiþi cu mandb --create"
@@ -88,65 +83,65 @@ msgstr "avertisment: %s este versiunea %s, se aºtepta %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "fatal: nu se poate insera identificatorul de versiune în %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr ""
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr ""
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr ""
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "nu se poate deschide %s pentru citire"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr ""
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr ""
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
#, fuzzy
msgid "use this user configuration file"
msgstr "nu se poate deschide fiºierul de configurare al cãii de man %s"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "comanda man a eºuat cu stare de ieºire %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "nu se poate citi baza de date %s."
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "conþinut NULL pentru cheia: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -155,116 +150,121 @@ msgstr ""
"\n"
"Se înnoiesc(update) fiºierele cat pentru secþiunea %s a ierarhiei man %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "nu se poate scrie în %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "nu se poate înnoi(update) %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "avertisment: %s/man%s/%s.%s*: extensii concurente"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "nu se poate înnoi(update) index cache %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "avertisment: %s: symlink eronat sau cerere ROFF `.so'"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "avertisment: %s: se ignorã fiºierul vid."
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "avertisment: %s: analiza(parse) whatis pentru %s(%s) eºuatã"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "nu se poate cãuta directorul %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "nu se poate face chown pe %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "avertisment: nu se poate crea catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "nu se poate face chmod pe %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "nu se poate schimba în directorul %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "nu se poate crea index cache-ului %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Se înnoieºte(update) index cache-ul pentru calea `%s%s'. Aºteptaþi..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "efectuat.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Se curãþã(purge) intrãrile vechi ale bazei de date în %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "avertisment: am eºuat în depozitarea intrãrii pentru %s (%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "avertisment: %s: se ignorã numele de fiºier fals(bogus)"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr ""
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr ""
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr ""
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr ""
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr ""
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr ""
@@ -275,309 +275,309 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "avertisment: whatis pentru %s depãºeºte %d octeþi, se trunchiazã."
msgstr[1] "avertisment: whatis pentru %s depãºeºte %d octeþi, se trunchiazã."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "nu se poate deschide %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr ""
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr ""
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr ""
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr ""
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr ""
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr ""
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr ""
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, fuzzy, c-format
msgid "%s: incompatible options"
msgstr ": opþiuni incompatibile"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "comanda a ieºit cu starea %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr ""
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr ""
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr ""
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr ""
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr ""
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr ""
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr ""
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr ""
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr ""
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr ""
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr ""
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr ""
-#: src/man.c:296
+#: src/man.c:286
#, fuzzy
msgid "Finding manual pages:"
msgstr " Paginã de manual "
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr ""
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr ""
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr ""
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr ""
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr ""
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr ""
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr ""
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr ""
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr ""
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr ""
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr ""
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr ""
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr ""
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr ""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr ""
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr ""
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr ""
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
msgstr ""
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr ""
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr ""
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr ""
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr ""
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr ""
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr ""
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
msgstr ""
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr ""
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, fuzzy, c-format
msgid "No manual entry for %s\n"
msgstr "Nu existã intrare în manual pentru %s"
-#: src/man.c:612
+#: src/man.c:599
#, fuzzy, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "Ce paginã de manual doriþi din secþiunea %s?\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Ce paginã de manual doriþi?\n"
-#: src/man.c:785
+#: src/man.c:730
#, fuzzy, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Nu existã intrare în manual pentru %s"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr ""
"Citiþi `%s' pentru ajutor în caz cã paginile de manual nu sunt disponibile.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "se ignorã preprocesorul necunoscut `%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "nu se poate redenumi %s în %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "nu se poate seta timpul pe %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "nu se poate scoate linkul(unlink) la %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, fuzzy, c-format
msgid "can't create temporary cat for %s"
msgstr "nu se poate crea un nume de fiºier temporar"
-#: src/man.c:1968
+#: src/man.c:1913
#, fuzzy, c-format
msgid "can't create temporary directory"
msgstr "nu se poate crea un nume de fiºier temporar"
-#: src/man.c:1979
+#: src/man.c:1924
#, fuzzy, c-format
msgid "can't open temporary file %s"
msgstr "nu se poate deschide fiºierul de configurare al cãii de man %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "nu se poate ºterge directorul %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- urmãtor: %s [ vizualizare (return) | omitere (Ctrl-D) | ieºire (Ctrl-"
"C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -586,27 +586,27 @@ msgstr ""
"\n"
"nu se poate scrie în %s în modul catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Nu pot converti %s în nume cat"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: încrederea în referinþele whatis este învechitã\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "comanda mandb a eºuat cu stare de ieºire %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "eroare internã: candidatul tip %d depãºeºte domeniul"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Paginã de manual "
@@ -619,109 +619,109 @@ msgstr "nu se poate scrie în %s"
msgid "iconv: incomplete character at end of buffer"
msgstr ""
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr ""
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr ""
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr ""
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr ""
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr ""
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr ""
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr ""
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr ""
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr ""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr ""
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr ""
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr ""
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr ""
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr ""
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr ""
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "nu se poate ºterge %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "nu se poate scrie în %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "nu se poate citi din %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Se proceseazã paginile de manual sub %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, fuzzy, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Se verificã cat-urile rãtãcite sub %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"avertisment: nu existã directive MANDB_MAP în %s, se foloseºte calea voastrã "
"de man"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, fuzzy, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -732,239 +732,237 @@ msgstr[1] ""
"%d subdirectoare man conþin pagini de manual noi.\n"
"%d pagini de manual au fost adãugate.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, fuzzy, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] " Paginã de manual "
msgstr[1] " Paginã de manual "
-#: src/mandb.c:925
+#: src/mandb.c:929
#, fuzzy, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d cat-uri rãtãcite au fost adãugate.\n"
msgstr[1] "%d cat-uri rãtãcite au fost adãugate.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, fuzzy, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d intrãri vechi în baza de date au fost eliminate.\n"
msgstr[1] "%d intrãri vechi în baza de date au fost eliminate.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, fuzzy, c-format
msgid "No databases created."
msgstr "Nici o bazã de date înnoitã (updated)."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "nu pot înþelege fiºierul de configuraþie pentru cale man %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "avertisment: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "avertisment: %s nu este un director"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "lista de cãi man este prea lungã"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "avertisment: nu este setat $PATH"
-#: src/manp.c:682
+#: src/manp.c:699
#, fuzzy, c-format
msgid "warning: empty $PATH"
msgstr "avertisment: %PATH vid"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "avertisment: $MANPATH setat, se adaugã la început(prepending) %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "avertisment: $MANPATH setat, se adaugã(append) %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "avertisment: $MANPATH setat, se insereazã %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "avertisment: $MANPATH setat, se ignorã %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "nu se poate analiza(parse) lista de directoare `%s'"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "nu se poate deschide fiºierul de configurare al cãii de man %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "avertisment: directorul necesar %s nu existã"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "nu se poate determina directorul curent"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "avertisment: %s nu începe cu %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr ""
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr ""
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"avertisment: nu existã cãi man globale setate în fiºierul de configurare %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "avertisment: %s este un symlink nesigur(dangling)"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "nu se poate rezolva %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Se verificã cat-urile rãtãcite sub %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "avertisment: nu se poate înnoi(update) index cache-ul %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s este auto-referinþã(self-referencing)"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr ""
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr ""
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr ""
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr ""
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr ""
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr ""
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr ""
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr ""
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr ""
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr ""
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s ce?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "avertisment: %s conþine o buclã pointer"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(subiect necunoscut)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: nimic potrivit.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr ""
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr ""
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr ""
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr ""
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr ""
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr ""
+#~ msgid "manpath list too long"
+#~ msgstr "lista de cãi man este prea lungã"
+
#, fuzzy
#~ msgid "can't restore previous working directory"
#~ msgstr "nu se poate crea un nume de fiºier temporar"
diff --git a/po/ru.gmo b/po/ru.gmo
index 8e944d31..48e2be5c 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 75238919..6e0f7dae 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-01-23 05:37+0300\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
@@ -20,47 +20,42 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "не удалоÑÑŒ уÑтановить Ñффективный uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "setuid man пользователь \"%s\" не ÑущеÑтвует"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "не удалоÑÑŒ выполнить функцию chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "неуÑÑ‚Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: regex `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "многомерный ключ %s не ÑущеÑтвует"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "не удалоÑÑŒ заблокировать индекÑный кÑш %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "индекÑный кÑш %s повреждён"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "не удалоÑÑŒ заменить ключ %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
@@ -68,12 +63,12 @@ msgstr[0] "в Ñодержимом только %d поле"
msgstr[1] "в Ñодержимом только %d полÑ"
msgstr[2] "в Ñодержимом только %d полей"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð²Ñ‹Ð±Ð¾Ñ€ÐºÐ° по многомерному ключу %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "База данных %s повреждена; переÑборка командой mandb --create"
@@ -93,64 +88,64 @@ msgstr "предупреждение: %s имеет верÑию %s, а ожид
msgid "fatal: unable to insert version identifier into %s"
msgstr "неуÑÑ‚Ñ€Ð°Ð½Ð¸Ð¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удалоÑÑŒ вÑтавить идентификатор верÑии в %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[БÐЗРДÐÐÐЫХ MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "По умолчанию база данных man раÑположена в %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "показывать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "не удалоÑÑŒ открыть %s на чтение"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[СЕКЦИЯ...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "ПУТЬ"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "уÑтановить путь поиÑка Ñправочных Ñтраниц в значение ПУТЬ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "ФÐЙЛ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "иÑпользовать указанный пользовательÑких файл наÑтроек"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "команда man завершилаÑÑŒ неудачно (код выхода %d)"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "не удалоÑÑŒ прочитать базу данных %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Ñодержимое ключа равно NULL: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -159,117 +154,122 @@ msgstr ""
"\n"
"Обновление cat файлов в разделе %s man иерархии %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "не удалоÑÑŒ запиÑать в %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "не удалоÑÑŒ обновить %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "предупреждение: %s/man%s/%s.%s*: конкурирующие раÑширениÑ"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "не удалоÑÑŒ обновить индекÑный кÑш %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr ""
"предупреждение: %s: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑимволичеÑÐºÐ°Ñ ÑÑылка или Ð·Ð°Ð¿Ñ€Ð¾Ñ ROFF `.so'"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "предупреждение: %s: игнорируетÑÑ Ð¿ÑƒÑтой файл"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "предупреждение: %s: whatis анализ %s(%s) не удалÑÑ"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "не удалоÑÑŒ найти каталог %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "не удалоÑÑŒ выполнить функцию chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "предупреждение: не удалоÑÑŒ Ñоздать cat каталог %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "не удалоÑÑŒ выполнить функцию chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "не удалоÑÑŒ Ñменить каталог на %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "не удалоÑÑŒ Ñоздать индекÑный кÑш %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Обновление индекÑного кÑша Ð´Ð»Ñ Ð¿ÑƒÑ‚Ð¸ `%s/%s'. Ждите..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "завершено.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Удаление Ñтарых запиÑей базы данных в %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "предупреждение: не удалоÑÑŒ Ñохранить запиÑÑŒ Ð´Ð»Ñ %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "предупреждение: %s: игнорируетÑÑ Ñ„Ð°Ð»ÑŒÑˆÐ¸Ð²Ð¾Ðµ Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "ПУТЬ СЕКЦИЯ ИМЯ"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "РÐСШИРЕÐИЕ"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "иÑкать только Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ РÐСШИРЕÐИЕМ"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "не учитывать региÑÑ‚Ñ€ при поиÑке (по умолчанию)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "учитывать региÑÑ‚Ñ€ при поиÑке"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "Ñчитать Ð¸Ð¼Ñ Ñтраницы регулÑрным выражением"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "Ð¸Ð¼Ñ Ñтраницы Ñодержит групповые Ñимволы"
@@ -284,193 +284,193 @@ msgstr[1] ""
msgstr[2] ""
"предупреждение: результат whatis Ð´Ð»Ñ %s превыÑил %d байт, обрезаетÑÑ."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "не удалоÑÑŒ открыть %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "ФÐЙЛ..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "По умолчанию иÑпользуютÑÑ --man и --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "анализировать как man-Ñтраницу"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "анализировать как cat-Ñтраницу"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "показать информацию whatis"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "показать Ñерию предположений фильтров предварительной обработки"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "КОДИРОВКÐ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "иÑпользовать выбранную кодировку выходных данных"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: неÑовмеÑтимые параметры"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "команда завершилаÑÑŒ Ñ ÐºÐ¾Ð´Ð¾Ð¼ %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[СЕКЦИЯ] СТРÐÐИЦÐ..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "ÑброÑить вÑе параметры в Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "ПРЕДУПРЕЖДЕÐИЯ"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "включить Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚ groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "ОÑновные режимы работы:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "Ñквивалентно whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "Ñквивалентно apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "иÑкать текÑÑ‚ по вÑем Ñправочным Ñтраницам"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "показывать физичеÑкое раÑположение man Ñтраницы"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "показывать физичеÑкое раÑположение cat файла(ов)"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "воÑпринимать аргумент(Ñ‹) СТРÐÐИЦРкак Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»(ов)"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "иÑпользуетÑÑ catman Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÑтаревших cat Ñтраниц"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "вывеÑти иÑходную Ñтраницу в КОДИРОВКЕ"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "ПоиÑк Ñправочных Ñтраниц:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "ЛОКÐЛЬ"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "задать локаль Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "СИСТЕМÐ"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "иÑпользовать Ñправочные Ñтраницы от других ÑиÑтем"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "СПИСОК"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "иÑпользовать ÑпиÑок Ñекций, указанных через двоеточие"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "показать вÑе Ñтраницы, удовлетворÑющие регулÑрному выражению"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "показать вÑе Ñтраницы, удовлетворÑющие групповым Ñимволам"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"иÑкать Ñовпадение --regex и --wildcard только в именах Ñтраниц, без опиÑаний"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "поиÑк вÑех подходÑщих Ñправочных Ñтраниц"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "выполнить проверку целоÑтноÑти кÑша"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "не затрагивать подÑтраницы, например, 'man foo bar' => 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Управление форматированием вывода:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "ПЕЙДЖЕР"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "иÑпользовать программу ПЕЙДЖЕР Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° на Ñкран"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "СТРОКÐ"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "иÑпользовать пейджер `less' Ñ Ð¿Ð¾Ð´Ñказкой"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "показать транÑлÑцию ASCII определённых Ñимволов latin1"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "выключить Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ñлов"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "выключить выравнивание"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -480,34 +480,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "иÑпользовать %s Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтраниц"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "УСТРОЙСТВО"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "иÑпользовать %s на выбранном уÑтройÑтве"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "БРÐУЗЕР"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "иÑпользовать %s или БРÐУЗЕР Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "РÐЗРЕШЕÐИЕ"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -515,81 +515,81 @@ msgstr ""
"иÑпользовать groff и показывать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "иÑпользовать groff и заÑтавить его генерировать ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Ðет Ñправочной Ñтраницы Ð´Ð»Ñ %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Или же, ÐºÐ°ÐºÐ°Ñ Ð¸Ð¼ÐµÐ½Ð½Ð¾ из Ñправочных Ñтраниц раздела %s вам нужна?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "ÐšÐ°ÐºÐ°Ñ ÑÐ¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ñтраница вам нужна?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Ðет Ñправочной Ñтраницы Ð´Ð»Ñ %s в разделе %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Смотрите '%s' в Ñправке, еÑли недоÑтупны Ñправочные Ñтраницы.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "игнорирование неизвеÑтного препроцеÑÑора `%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "не удалоÑÑŒ переименовать %s в %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "не удалоÑÑŒ уÑтановить Ð²Ñ€ÐµÐ¼Ñ Ð´Ð¾Ñтупа Ð´Ð»Ñ %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "не удалоÑÑŒ выполнить функцию unlink %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "не удалоÑÑŒ Ñоздать временный cat файл %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "не удалоÑÑŒ Ñоздать временный каталог"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "не удалоÑÑŒ открыть временный файл %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "не удалоÑÑŒ удалить каталог %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- Ñлед: %s [ проÑм (ввод) | пропуÑк (Ctrl-D) | выход (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -598,27 +598,27 @@ msgstr ""
"\n"
"не удалоÑÑŒ запиÑать в %s в режиме catman"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Ðе удалоÑÑŒ преобразовать %s в cat имÑ"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: полагатьÑÑ Ð½Ð° ÑÑылки whatis наÑтоÑтельно не рекомендуетÑÑ\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "команда mandb завершилаÑÑŒ неудачно (код выхода %d)"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: тип кандидата %d вне диапазона"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Ð¡Ð¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ñтраница "
@@ -631,107 +631,107 @@ msgstr "не удалоÑÑŒ запиÑать в Ñтандартный выхоÐ
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: неполный Ñимвол в конце буфера"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f КОДИРОВКÐ[:...] -t КОДИРОВКР[ИМЯ-ФÐЙЛÐ]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "КОДИРОВКÐ[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "возможные кодировки иÑходного текÑта"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "КОДИРОВКÐ"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "кодировка вывода"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "выводить некоторые предупреждениÑ"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "должна быть указана кодировка входных данных"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "должна быть указана кодировка выходных данных"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPATH]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "не выводить ÑообщениÑ, за иÑключением 'фиктивных' предупреждений"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "не иÑкать или добавлÑÑ‚ÑŒ побочные cat в dbs"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "не вычищать уÑтаревшие запиÑи из dbs"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "Ñоздать только пользовательÑкие базы данных"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "Ñоздать dbs Ñ Ð½ÑƒÐ»Ñ, а не обновлÑÑ‚ÑŒ"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "проверить Ñправочные Ñтраницы на правильноÑÑ‚ÑŒ"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "ИМЯ-ФÐЙЛÐ"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "обновить запиÑÑŒ только Ð´Ð»Ñ Ñтого файла"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "не удалоÑÑŒ удалить %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "не удалоÑÑŒ запиÑать в %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "не удалоÑÑŒ прочитать из %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Обработка Ñправочных Ñтраниц в %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "УдалÑетÑÑ ÑƒÑтаревший каталог cat %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "предупреждение: нет директивы MANDB_MAP в %s, иÑпользуетÑÑ Ð²Ð°Ñˆ manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -739,7 +739,7 @@ msgstr[0] "Ð’ %d man-подкаталоге ÑодержатÑÑ Ð±Ð¾Ð»ÐµÐµ но
msgstr[1] "Ð’ %d man-подкаталогах ÑодержатÑÑ Ð±Ð¾Ð»ÐµÐµ новые Ñправочные Ñтраницы.\n"
msgstr[2] "Ð’ %d man-подкаталогах ÑодержатÑÑ Ð±Ð¾Ð»ÐµÐµ новые Ñправочные Ñтраницы.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
@@ -747,7 +747,7 @@ msgstr[0] "Добавлена %d ÑÐ¿Ñ€Ð°Ð²Ð¾Ñ‡Ð½Ð°Ñ Ñтраница.\n"
msgstr[1] "Добавлено %d Ñправочные Ñтраницы.\n"
msgstr[2] "Добавлено %d Ñправочных Ñтраниц.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
@@ -755,7 +755,7 @@ msgstr[0] "Добавлена %d Ð¿Ð¾Ð±Ð¾Ñ‡Ð½Ð°Ñ cat-Ñтраница.\n"
msgstr[1] "Добавлено %d побочные cat-Ñтраницы.\n"
msgstr[2] "Добавлено %d побочных cat-Ñтраниц.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
@@ -763,220 +763,218 @@ msgstr[0] "Вычищена %d ÑÑ‚Ð°Ñ€Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ базы данных.\
msgstr[1] "Вычищено %d Ñтарые запиÑи базы данных.\n"
msgstr[2] "Вычищено %d Ñтарых запиÑей базы данных.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Базы данных не Ñозданы."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "нет правильного manpath файла наÑтроек %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "предупреждение: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "предупреждение: %s не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "ÑпиÑок manpath Ñлишком длинный"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "предупреждение: Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $PATH не уÑтановлена"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "предупреждение: Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $PATH пуÑта"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr ""
"предупреждение: найдена Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $MANPATH, добавлÑетÑÑ Ðº началу %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr ""
"предупреждение: найдена Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $MANPATH, добавлÑетÑÑ Ð² конец %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "предупреждение: найдена Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $MANPATH, вÑтавлÑетÑÑ Ð² %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "предупреждение: найдена Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñреды $MANPATH, игнорируетÑÑ %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "не удалоÑÑŒ разобрать ÑпиÑок каталогов `%s'"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "не удалоÑÑŒ открыть manpath файл наÑтроек %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "предупреждение: обÑзательный каталог %s не ÑущеÑтвует"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "не удалоÑÑŒ определить текущий каталог"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "предупреждение: %s не начинаетÑÑ Ñ %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "показать отноÑительные catpath"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "показать веÑÑŒ глобальный manpath"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "предупреждение: не уÑтановлены глобальные manpath в файле наÑтроек %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "предупреждение: %s ÑÑылаетÑÑ Ð½Ð° неÑущеÑтвующий объект"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "не удалоÑÑŒ определить %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Проверка побочных cat в %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "предупреждение: не удалоÑÑŒ обновить индекÑный кÑш %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s ÑÑылаетÑÑ Ð½Ð° ÑебÑ"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "КЛЮЧ..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Параметр --regex включён по умолчанию."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "выводить подробные предупреждающие ÑообщениÑ"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "Ñчитать каждый ключ регулÑрным выражением"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "иÑкать точное ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ключа"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "ключ(и) Ñодержит групповые Ñимволы"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "требуетÑÑ Ñовпадение вÑех ключей"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "не обрезать вывод по ширине терминала"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "иÑкать только в Ñтих ÑекциÑÑ… (разделÑÑŽÑ‚ÑÑ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "задать локаль Ð´Ð»Ñ Ñтого поиÑка"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s что?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "warning: %s Ñодержит цикличеÑкий указатель"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(неизвеÑтный объект)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: ничего подходÑщего не найдено.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so запрашивает Ñлишком глубокую вложенноÑÑ‚ÑŒ или Ñто рекурÑиÑ"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: предупреждение: .so Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»ÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð¾"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: предупреждение: Ð½Ð¾Ð²Ð°Ñ Ñтрока в .so запроÑе, игнорируетÑÑ"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr ""
"%s:%d: предупреждение: неправильно Ñформированный .lf запроÑ, игнорируетÑÑ"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: предупреждение: Ð½Ð¾Ð²Ð°Ñ Ñтрока в .lf запроÑе, игнорируетÑÑ"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: Ð½ÐµÐ·Ð°ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ°Ð²Ñ‹Ñ‡ÐºÐ° в roff запроÑе"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "Ð´Ð»Ñ ÑовмеÑтимоÑти (игнорируетÑÑ)"
+#~ msgid "manpath list too long"
+#~ msgstr "ÑпиÑок manpath Ñлишком длинный"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "не удалоÑÑŒ воÑÑтановить предыдущий рабочий каталог"
diff --git a/po/sr.gmo b/po/sr.gmo
index 1d8836dc..cbed7154 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index abc7a2a6..d8020ddc 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-18 06:38+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
@@ -18,47 +18,42 @@ msgstr ""
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "не могу да подеÑим Ñтварни јиб"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "подеÑииб ман кориÑник „%s“ не поÑтоји"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "не могу да променим влаÑника „%s“"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "кобно: регизр „%s“: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "вишеÑтруки кључ %s не поÑтоји"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "не могу да закључам оÑтаву индекÑа „%s“"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "оÑтава индекÑа „%s“ је оштећена"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "не могу да заменим кључ „%s“"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
@@ -66,12 +61,12 @@ msgstr[0] "Ñамо %d поље у Ñадржају"
msgstr[1] "Ñамо %d поља у Ñадржају"
msgstr[2] "Ñамо %d поља у Ñадржају"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "лоша набавка на вишеÑтруком кључу „%s“"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "База података „%s“ је оштећена; изградите поново Ñа „mandb --create“"
@@ -91,64 +86,64 @@ msgstr "упозорење: „%s“ је у издању %s, очекивах %
msgid "fatal: unable to insert version identifier into %s"
msgstr "кобно: не могу да уметнем одредника издања у „%s“"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[БÐЗРПОДÐТÐКРМÐÐ-а]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "База података мана Ñе пребацује на %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "иÑпиÑује поруке за иÑправљање грешака"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "не могу да отворим „%s“ за читање"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[ОДЕЉÐК...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "ПУТÐЊÐ"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "поÑтавља путању претраге за Ñтранице упутÑтва на ПУТÐЊУ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "ДÐТОТЕКÐ"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "кориÑти ову кориÑничку датотеку подешавања"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "наредба мана није уÑпела Ñа излазним Ñтањем „%d“"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "не могу да прочитам базу података „%s“"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "ÐИШТÐÐ’ÐÐ Ñадржај за кључ: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"Ðжурирам кат датотеке за одељак %s манове хијерархије %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "не могу да пишем у „%s“"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "не могу да ажурирам „%s“"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "упозорење: %s/man%s/%s.%s*: конкурентна проширења"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "не могу да ажурирам оÑтаву индекÑа „%s“"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "упозорење: %s: лоша Ñимболичка веза или РОФФ „.so“ захтев"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "упозорење: %s: занемарујем празну датотеку"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "упозорење: %s: није уÑпела обрада шта-је за %s(%s)"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "не могу да претражим директоријум „%s“"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "не могу да променим влаÑника „%s“"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "упозорење: не могу да направим катдир „%s“"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "не могу да променим режим „%s“"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "не могу да пређем у директоријум „%s“"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "не могу да направим оÑтаву индекÑа „%s“"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Ðжурирам оÑтаву индекÑа за путању „%s/%s“. Сачекајте..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "готово.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Избацујем Ñтаре уноÑе базе података у „%s“...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "упозорење: ниÑам уÑпео да уÑкладиштим ÑƒÐ½Ð¾Ñ Ð·Ð° %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "упозорење: %s: занемарујем нетачан назив датотеке"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "ПУТÐЊРОДЕЉÐК ÐÐЗИВ"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "ПРОШИРЕЊЕ"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "ограничава претрагу на врÑту проширења ПРОШИРЕЊЕ"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "тражи Ñтранице без обзира на величину Ñлова (оÑновно)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "тражи Ñтранице Ñ Ð¾Ð±Ð·Ð¸Ñ€Ð¾Ð¼ на величину Ñлова"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "тумачи назив Ñтранице као регуларни израз"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "назив Ñтранице Ñадржи џокере"
@@ -278,193 +278,193 @@ msgstr[0] "упозорење: шта-је за „%s“ премашује %d Ð
msgstr[1] "упозорење: шта-је за „%s“ премашује %d бајта, Ñкраћујем."
msgstr[2] "упозорење: шта-је за „%s“ премашује %d бајтова, Ñкраћујем."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "не могу да отворим „%s“"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "ДÐТОТЕКÐ..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "ОÑновно је „--man“ и „--whatis“."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "обрађује као ман Ñтраницу"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "обрађује као кат Ñтраницу"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "приказује шта-је податке"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "приказује погођене Ñерије пропуÑника предобраде"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "КОДИРÐЊЕ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "кориÑти изабрано кодирање излаза"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: неÑаглаÑне опције"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "наредба је изашла Ñа Ñтањем %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[ОДЕЉÐК] СТРÐÐИЦÐ..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "враћа Ñве опције на њихове оÑновне вредноÑти"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "УПОЗОРЕЊÐ"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "укључује упозорења из гроф-а"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Главни режими рада:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "иÑто што и шта-је"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "иÑто што и „apropos“"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "тражи текÑÑ‚ на Ñвим Ñтраницама"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "иÑпиÑује физичко меÑто ман Ñтранице(а)"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "иÑпиÑује физичко меÑто кат датотеке(а)"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "тумачи аргумент(е) СТРÐÐИЦЕ као меÑни(е) назив(е) датотеке"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "кориÑти га катман да поново обликује заÑтареле кат Ñтранице"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "излазна Ñтраница извора је кодирана у КОДИРÐЊУ"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Проналажење Ñтраница упутÑтва:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "ЈЕЗИК"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "одређује језик за ову нарочиту претрагу мана"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "СИСТЕМ"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "кориÑти Ñтранице упутÑтва Ñа других ÑиÑтема"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "СПИСÐК"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "кориÑти двотачком раздвојени ÑпиÑак одељка"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "приказује Ñве Ñтранице које одговарају регуларном изразу"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "приказује Ñве Ñтранице које одговарају џокерима"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"„make --regex“ и „--wildcard“ поклапају Ñамо називе Ñтраница, а не опиÑе"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "проналази Ñве одговарајуће Ñтранице упутÑтва"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "приморава проверу доÑледноÑти оÑтаве"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "не покушава подÑтранице, нпр. „man foo bar“ => „man foo-bar“"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Управљање обликованим излазом:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "СТРÐÐИЧÐР"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "кориÑти програм СТРÐÐИЧÐР за приказивање излаза"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "ÐИСКÐ"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "обезбеђује Ñтраничара „less“ Ñа упитом"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "приказује ÐСКРИ превод неких латин1 знакова"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "иÑкључује преламање"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "иÑкључује поравнавање"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -474,34 +474,34 @@ msgstr ""
"e — [n]eqn, p — pic, t — tbl,\n"
"g — grap, r — refer, v — vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "кориÑти „%s“ за обликовање Ñтраница"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "УРЕЂÐЈ"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "кориÑти „%s“ Ñа изабраним уређајем"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "ПРЕГЛЕДÐИК"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "кориÑти „%s“ или ПРЕГЛЕДÐИК за приказивање ХТМЛ излаза"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "РЕЗОЛУЦИЈÐ"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -509,82 +509,82 @@ msgstr ""
"кориÑти грофа и приказује кроз гикÑдитпреглед (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "кориÑти гроф и приморава га да произведе дитроф"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Ðема уноÑа упутÑтва за „%s“\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Илити, коју Ñтраницу упутÑтва желите из одељка %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Коју Ñтраницу упутÑтва желите?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Ðема уноÑа упутÑтва за „%s“ у одељку %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Погледајте „%s“ за помоћ када Ñтранице упутÑтва ниÑу доÑтупне.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "занемарујем неознати препроцеÑор „%c“"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "не могу да преименујем „%s“ у „%s“"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "не могу да подеÑим времена на „%s“"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "не могу да развежем „%s“"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "не могу да направим привремени кат за „%s“"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "не могу да направим привремени директоријум"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "не могу да отворим привремену датотеку „%s“"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "не могу да уклоним директоријум „%s“"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Ман-- Ñледеће: %s [ преглед (повратница) | преÑкочи (Ктрл-Д) | изађи (Ктрл-"
"Ц) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -593,27 +593,27 @@ msgstr ""
"\n"
"не могу да пишем у „%s“ у катман режиму"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Ðе могу да претворим „%s“ у кат назив"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: оÑлањање на упуте шта-је је заÑтарело\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "наредба мандб није уÑпела Ñа излазним Ñтањем „%d“"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "унутрашња грешка: врÑта кандидата „%d“ је ван опÑега"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Страница упутÑтва "
@@ -626,107 +626,107 @@ msgstr "не могу да пишем на Ñтандардни излаз"
msgid "iconv: incomplete character at end of buffer"
msgstr "иконв: непотпун знак на крају међумеморије"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f КОД[:...] -t КОД [ÐÐЗИВ ДÐТОТЕКЕ]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "КОД[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "могућа кодирања изворног текÑта"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "КОД"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "кодирање за излаз"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "производи мања упозорења"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "морате навеÑти кодирање улаза"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "морате навеÑти кодирање излаза"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[ÐœÐÐПУТÐЊÐ]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "ради тихо, оÑим за „bogus“ упозорење"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "не тражи или не додаје залутале катÑе у базе података"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "не избацује заÑтареле уноÑе из база података"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "производи Ñамо кориÑничке базе података"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "прави базе података од почетка, умеÑто да их оÑвежава"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "проверава Ñтранице упутÑтва за иÑправношћу"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "ДÐТОТЕКÐ"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "ажурира Ñамо ÑƒÐ½Ð¾Ñ Ð·Ð° ову датотеку"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "не могу да уклоним „%s“"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "не могу да пишем у „%s“"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "не могу да читам из „%s“"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Обрађујем Ñтранице упутÑтва под „%s“...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Уклањам заÑтареле кат директоријуме „%s“...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "упозорење: нема ÐœÐÐБП_ÐœÐП Ñмерница у „%s“, кориÑтим вашу ман-путању"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -734,7 +734,7 @@ msgstr[0] "%d ман подиректоријум је Ñадржао новиј
msgstr[1] "%d ман подиректоријума Ñу Ñадржала новије Ñтранице упутÑтва.\n"
msgstr[2] "%d ман подиректоријума је Ñадржало новије Ñтранице упутÑтва.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
@@ -742,7 +742,7 @@ msgstr[0] "%d Ñтраница упутÑтва је додата.\n"
msgstr[1] "%d Ñтранице упутÑтва Ñу додате.\n"
msgstr[2] "%d Ñтраница упутÑтва је додато.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
@@ -750,7 +750,7 @@ msgstr[0] "%d залутали кат је додат.\n"
msgstr[1] "%d залутала ката Ñу додата.\n"
msgstr[2] "%d залуталих катова је додато.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
@@ -758,217 +758,215 @@ msgstr[0] "%d Ñтари ÑƒÐ½Ð¾Ñ Ð±Ð°Ð·Ðµ података је избачен.
msgstr[1] "%d Ñтара уноÑа базе података Ñу избачена.\n"
msgstr[2] "%d Ñтарих уноÑа базе података је избачено.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "ÐиÑу направљене базе података."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "не могу да направим ÑмиÑао датотеке подешавања манпутање „%s“"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "упозорење: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "упозорење: „%s“ није директоријум"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "ÑпиÑак манпутање је предуг"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "упозорење: $ПУТÐЊРније подешено"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "упозорење: празно $ПУТÐЊÐ"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "упозорење: $ÐœÐÐПУТÐЊРје подешено, поÑтављам иÑпред „%s“"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "упозорење: $ÐœÐÐПУТÐЊРје подешено, поÑтављам иза „%s“"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "упозорење: $ÐœÐÐПУТÐЊРје подешено, умећем „%s“"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "упозорење: $ÐœÐÐПУТÐЊРје подешено, занемарујем „%s“"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "не могу да обрадим ÑпиÑак директоријума „%s“"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "не могу да отворим датотеку подешавања манпутање „%s“"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "упозорење: обавезан директоријум „%s“ не поÑтоји"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "не могу да одредим текући директоријум"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "упозорење: „%s“ не почиње Ñа „%s“"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "показује одноÑне катпутање"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "показује читаву општу манпутању"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "упозорење: ниÑу подешене опште манпутање у датотеци подешавања „%s“"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "упозорење: „%s“ је апÑолутна Ñимболичка веза"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "не могу да решим „%s“"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Тражим залутале катÑе под „%s“...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "упозорење: не могу да ажурирам оÑтаву индекÑа „%s“"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "„%s“ је Ñамо упутна"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "КЉУЧÐРРЕЧ..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Опција „--regex“ је унапред изабрана."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "иÑпиÑује опширне поруке упозорења"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "тумачи Ñваку кључну реч као регуларни израз"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "тражи Ñваку кључну реч за тачним поклапањем"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "кључна реч Ñадржи џокера"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "захтева Ñве кључне речи за подударање"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "не крати излаз на ширину терминала"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "претаржује Ñамо ове одељке (раздвојене двотачком)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "одређује језик за ову претрагу"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s шта?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "упозорење: „%s“ Ñадржи петљу показивача"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(непознат Ñубјекат)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: ништа одговарајуће.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: „.so“ захтеви Ñу угнежђени превише дубоко или Ñу дубинÑки"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: упозорење: није уÑпео „.so“ захтев"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: упозорење: нови ред у „.so“ захтеву, занемарујем"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: упозорење: лош „.lf“ захтев, занемарујем"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: упозорење: нови ред у „.lf“ захтеву, занемарујем"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: неокончани цитат у роф захтеву"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "пребацивање ÑаглаÑноÑти (занемарено)"
+#~ msgid "manpath list too long"
+#~ msgstr "ÑпиÑак манпутање је предуг"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "не могу да повратим претходни радни директоријум"
diff --git a/po/sv.gmo b/po/sv.gmo
index 256e6db9..49f02910 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 00392a0f..c9fb4d54 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2017-01-05 01:35+0100\n"
"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -21,59 +21,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.11\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "kan inte ställa in effektivt uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "en manualanvändare \"%s\" som är setuid finns inte"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "kan inte byta ägare på %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "ödesdigert: reguljärt uttryck \"%s\": %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "multinyckeln %s finns inte"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "kan inte låsa indexcachen %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "indexcachen %s är trasig"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "kan inte ersätta nyckeln %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "endast %d fält i innehåll"
msgstr[1] "endast %d fält i innehåll"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "felaktig hämtning på multinyckel %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "Databasen %s är skadad; bygg om med mandb --create"
@@ -93,65 +88,65 @@ msgstr "varning: %s är version %s, %s förväntas\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "ödesdiger: kan inte infoga versionsidentifierare i %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MANUALDATABAS]"
# %s%s är en sökväg.
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Manualdatabasen är som standard %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "avge felsökningsmeddelanden"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "kan inte öppna %s för läsning"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[AVSNITT…]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "SÖKVÄG"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "ställ in sökväg för manualsidor till SÖKVÄG"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "FIL"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "använd denna användarkonfigurationsfil"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "manualkommandot misslyckades med slutstatus %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "kan inte läsa databasen %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "NULL-innehåll för nyckel: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -160,116 +155,121 @@ msgstr ""
"\n"
"Uppdaterar cat-filer för avsnitt %s i man-hierarkin %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "kan inte skriva inom %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "kan inte uppdatera %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "varning: %s/man%s/%s.%s*: filändelser i konflikt"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "kan inte uppdatera indexcachen %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "varning: %s: felaktig symbolisk länk eller ROFF \".so\"-begäran"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "varning: %s: ignorerar tom fil"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "varning: %s: whatis-tolkning för %s(%s) misslyckades"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "kan inte söka i katalogen %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "kan inte byta ägare på %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "varning: kan inte skapa cat-katalog %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "kan inte ändra rättigheter på %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "kan inte byta till katalogen %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "kan inte skapa indexcachen %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "Uppdaterar indexcache för sökvägen \"%s/%s\". Vänta..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "klar.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Tömmer gamla databasposter i %s...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "varning: misslyckades med att lagra post för %s(%s)"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "varning: %s: ignorerar felaktigt filnamn"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "SÖKVÄG AVSNITT NAMN"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "ÄNDELSE"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "begränsa sökning till ändelsetyp ÄNDELSE"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "leta efter sidor skiftlägesoberoende (standard)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "leta efter sidor skiftlägesberoende"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "tolka sidnamn som ett reguljärt uttryck"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "sidnamnet innehåller jokertecken"
@@ -280,193 +280,193 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "varning: whatis för %s överskrider %d byte, förkortar."
msgstr[1] "varning: whatis för %s överskrider %d byte, förkortar."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "kan inte öppna %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "FIL…"
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Standardflaggorna är --man och --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "tolka som manualsida"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "tolka som cat-sida"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "visa whatis-information"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "visa gissade serier av preprocessorfilter"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KODNING"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "använd vald utmatningskodning"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: inkompatibla flaggor"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "kommandot avslutade med status %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[AVSNITT] SIDA…"
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "återställ alla flaggor till deras standardvärden"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "VARNINGAR"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "aktivera varningar från groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Huvudlägen för drift:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "ekvivalent med whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "ekvivalent med apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "sök efter text i alla sidor"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "skriv ut manualsidors fysiska platser"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "skriv ut fysiska platser för cat-filer"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "tolka SIDA-argument som lokala filnamn"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "används av catman för att omformatera för gamla cat-sidor"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "mata ut källsida kodad i KODNING"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Hittar manualsidor:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "LOKAL"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "definiera lokalen för denna specifika manualsökning"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SYSTEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "använd manualsidor från andra system"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LISTA"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "använd kolonseparerad avsnittslista"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "visa alla sidor som matchar reguljärt uttryck"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "visa alla sidor som matchar jokertecken"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"få --regex och --wildcard att matcha endast sidnamn, inte beskrivningar"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "hitta alla matchande manualsidor"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "tvinga fram en konsistenskontroll av cachen"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "prova inte med undersidor, t.ex. â€man foo bar†=> â€man foo-barâ€"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Kontrollerar formaterad utmatning:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "SIDVISARE"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "använd programmet SIDVISARE för att visa utmatning"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "STRÄNG"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "tillhandahÃ¥ll â€lessâ€-sidvisaren med en prompt"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "visa ASCII-översättningen av vissa latin1-tecken"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "stäng av avstavning"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "stäng av justering"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -476,34 +476,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "använd %s för att formatera sidor"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "ENHET"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "använd %s med vald enhet"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "WEBBLÄSARE"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "använd %s eller WEBBLÄSARE för att visa HTML-utmatning"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "UPPLÖSNING"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -511,83 +511,83 @@ msgstr ""
"använd groff och visa via gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "använd groff och tvinga det att skapa ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Ingen manualpost för %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Alternativt, vilken manualsida vill du ha från avsnittet %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Vilken manualsida vill du ha?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Ingen manualpost för %s i avsnittet %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Se \"%s\" för hjälp när manualsidor inte är tillgängliga.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "ignorerar okänd preprocessor \"%c\""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "kan inte byta namn på %s till %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "kan inte ställa in tider på %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "kan inte avlänka %s"
# cat är vad? catalogue? kommandot "cat"?
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "kan inte skapa temporär cat för %s"
# cat är vad? catalogue? kommandot "cat"?
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "kan inte skapa temporärkatalog"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "kan inte öppna temporärfil %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "kan inte ta bort katalogen %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr ""
"--Man-- nästa: %s [ visa (retur) | hoppa över (Ctrl-D) | avsluta (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -596,27 +596,27 @@ msgstr ""
"\n"
"kan inte skriva till %s i catman-läge"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Kan inte konvertera %s till cat-namn"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: förlitande på whatis-referenser är föråldrat\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb-kommandot misslyckades med slutstatus %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "internt fel: kandidattypen %d utanför intervallet"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Manualsida "
@@ -629,345 +629,343 @@ msgstr "kan inte skriva till standard ut"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: ofullständigt tecken i slutet av buffert"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KOD[:…] -t KOD [FILNAMN]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KOD[:…]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "möjliga kodningar av originaltext"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KOD"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "kodning för utmatning"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "producera färre varningar"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "måste ange en inmatningskodning"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "måste ange en utmatningskodning"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANUALSÖKVÄG]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "arbeta tyst, förutom vid felaktig varning"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "leta inte efter eller lägg till lösa cat-sidor i databasen"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "rensa inte bort föråldrade poster från databasen"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "producera endast användardatabaser"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "skapa databaser från grunden, istället för att uppdatera dem"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "kontrollera att manualsidor är korrekta"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "FILNAMN"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "uppdatera bara posten för detta filnamn"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "kan inte ta bort %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "kan inte skriva till %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "kan inte läsa från %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Bearbetar manualsidor under %s...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Tar bort föråldrad cat-katalog %s…\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "varning: inga MANDB_MAP-direktiv i %s, använder din manualsökväg"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d manualunderkatalog innehöll nyare manualsidor.\n"
msgstr[1] "%d manualunderkataloger innehöll nyare manualsidor.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d manualsida lades till.\n"
msgstr[1] "%d manualsidor lades till.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d lös cat-sida lades till.\n"
msgstr[1] "%d lösa cat-sidor lades till.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d gammal databaspost rensades.\n"
msgstr[1] "%d gamla databasposter rensades.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Inga databaser skapade."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "kan inte förstå mig på konfigurationsfilen för manualsökväg %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "varning: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "varning: %s är inte en katalog"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "manualsökvägslistan för lång"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "varning: $PATH är inte satt"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "varning: tom $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "varning: $MANPATH är satt, lägger till %s före"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "varning: $MANPATH är satt, lägger till %s efter"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "varning: $MANPATH är satt, infogar %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "varning: $MANPATH är satt, ignorerar %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "kan inte tolka kataloglista \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "kan inte öppna konfigurationsfilen för manualsökväg %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "varning: obligatoriska katalogen %s finns inte"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "kan inte avgöra aktuell katalog"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "varning: %s börjar inte med %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "visa relativa cat-sökvägar"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "visa hela den globala manualsökvägen"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "varning: inga globala manualsökvägar angivna i konfigurationsfilen %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "varning: %s är en lös symbolisk länk"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "kan inte slå upp %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Undersöker lösa cat-sidor under %s...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "varning: kan inte uppdatera indexcachen %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s refererar till sig själv"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "NYCKELORD…"
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "--regex-flaggan är aktiverad som standard."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "skriv ut utförliga varningsmeddelanden"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "tolka varje nyckelord som ett reguljärt uttryck"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "sök efter exakt matchning för varje nyckelord"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "nyckelord(en) innehåller jokertecken"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "kräv att alla nyckelord matchar"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "justera inte utmatning till terminalbredd"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "sök endast i dessa avsnitt (kolonseparerade)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "definiera lokalen för denna sökning"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s vad?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "varning: %s innehåller en pekarslinga"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(okänt ämne)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: ingenting lämpligt.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so-begäran nästlade för djupt eller är rekursiva"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: varning: misslyckades med .so-begäran"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: varning: nyrad i .so-begäran, ignorerar"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: varning: felformaterad .lf-begäran, ignorerar"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: varning: nyrad i .lf-begäran, ignorerar"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: oavslutat citat i roff-begäran"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "kompatibilitetsflagga (ignorerad)"
+#~ msgid "manpath list too long"
+#~ msgstr "manualsökvägslistan för lång"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "kan inte återskapa tidigare arbetskatalog"
diff --git a/po/tr.gmo b/po/tr.gmo
index 603fcfb3..a4db6098 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 42580609..15c7789f 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2017-04-05 11:33+0100\n"
"Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -19,59 +19,54 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Lokalize 2.0\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "etkili uid ayarlanamıyor"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "setuid man kullanıcısı \"%s\" mevcut değil"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "%s üzerinde chown komutu kullanılamadı"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "ciddi: düzenli ifade `%s': %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "çoklu anahtar %s mevcut değil"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "%s içerik önbelleği kilitlenemez"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "%s içerik önbelleği bozuk"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "%s anahtarı değiştirilemez"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "içerikteki sadece %d alanı"
msgstr[1] "içerikteki sadece %d alanı"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "çoklu anahtar %s bozuk getirildi"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "%s veritabanı bozuk; mandb --create ile tekrar oluşturun"
@@ -91,64 +86,64 @@ msgstr "uyarı: %s sürümü %s, beklenen %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "ciddi: %s içine sürüm tanıtıcısı eklenemiyor"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN VERÄ°TABANI]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Man veritabanı şuna sıfırlanıyor: %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "hata ayıklama iletilerini yay"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "%s okumak için açılamıyor"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[BÖLÜM...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "YOL"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "kılavuz sayfaları için arama yolunu YOL olarak ayarla"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "DOSYA"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "bu kullanıcı yapılandırma dosyasını kullan"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "çıkış durumu %d ile man komutu başarısız oldu"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "%s veritabanı okunamıyor"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "Anahtar için boş içerik: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -157,116 +152,121 @@ msgstr ""
"\n"
"man hiyerarşi %s, %s bölümü için cat dosyaları güncelleniyor\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "%s içine yazılamıyor"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "%s güncellenemiyor"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "uyarı: %s/man%s/%s.%s*: uzantıları çakışıyor"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "%s içerik önbelleği güncellenemedi"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "uyarı: %s: bozuk sembolik bağlantı veya ROFF `.so' talebi"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "uyarı: %s: boş dosya yoksayılıyor"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "uyarı: %s: %s(%s) için whatis ayıklaması başarısız"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "%s dizini aranamıyor"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "%s üzerinde chown komutu kullanılamadı"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "uyarı: catdir %s oluşturulamıyor"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "%s için chmod yapılamıyor"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "%s dizinine deÄŸiÅŸtirilemiyor"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "%s dizin önbelleği oluşturulamıyor"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "`%s/%s' yolunun dizin önbelleği güncelleniyor. Bekleyin..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "tamamlandı.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "%s içindeki eski veritabanı girdileri temizleniyor...\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "uyarı: %s(%s) girdisini saklama başarısız oldu"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "uyarı: %s: sahte dosya adı yoksayılıyor"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "YOL BÖLÜM ADI"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "UZANTI"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "aramayı UZANTI uzantı türüne sınırla"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "sayfaları harf duyarlılığı olmadan ara (öntanımlı)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "sayfaları harf duyarlılığı ile ara"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "sayfa adını düzenli ifade olarak yorumla"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "sayfa adı özel semboller içeriyor"
@@ -277,195 +277,195 @@ msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "uyarı: %s için whatis %d baytı aştı, kırpılıyor."
msgstr[1] "uyarı: %s için whatis %d baytı aştı, kırpılıyor."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "%s açılamıyor"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "DOSYA..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Öntanımlılar --man ve --whatis."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "man sayfası olarak ayrıştır"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "cat sayfası olarak ayrıştır"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "whatis bilgisini göster"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "ön işleme filtrelerinin tahmin serilerini göster"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "KODLAMA"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "seçilen çıktı kodlamasını kullan"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: uyumsuz seçenekler"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "komut %d durumu ile çıktı: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[BÖLÜM] SAYFA..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "tüm seçenekleri öntanımlı değerlerine çevir"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "UYARILAR"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "groff uyarılarını etkinleştir"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Ana iÅŸlem kipleri:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "whatis ile eÅŸdeÄŸer"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "apropos ile eÅŸdeÄŸer"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "metni tüm sayfalarda ara"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "man sayfa(larının) fiziksel konumlarını yazdır"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "cat dosya(larının) fiziksel konumlarını yazdır"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "DOSYA argüman(lar)ını yerel dosya(lar) olarak yorumla"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr ""
"eski cat sayfalarını tekrar biçimlendirmek için catman tarafından "
"kullanılıyor"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "KODLAMA olarak kodlanmış çıktı kaynak dosyası"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Kılavuz sayfalarında arama:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "YEREL"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "bu özel man araması için yereli tanımla"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "SÄ°STEM"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "diğer sistemlerden kılavuz sayfalarını kullan"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "LÄ°STE"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "iki nokta ile ayrılmış bölüm listesini kullan"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "düzenli ifade ile eşleşen tüm sayfaları göster"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "özel karakter ile eşleşen tüm sayfaları göster"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"--regex ve --wildcard sadece sayfa adlarını eşleştirsin, açıklamaları değil"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "tüm eşleşen kılavuz sayfalarını bul"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "zorunlu bir önbellek düzenlilik denetimi yap"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "alt sayfaları deneme, örn. 'man foo bar' => 'man foo-bar'"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Biçimlendirilmiş çıktı denetlenmesi:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "ÇAĞRI CİHAZI"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "çıktı görüntülemek için program ÇAĞRI CİHAZI kullan"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "DÄ°ZGÄ°"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "`less' sayfalayıcıyı istek ile sun"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "bazı latin1 karakterlerinin ASCII çevirisini kullan"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "satır sonu karakterini kapat"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "hizalamayı kapat"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -475,34 +475,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "sayfaları biçimlemek için %s kullan"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "AYGIT"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "seçilen aygıt ile %s kullan"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "TARAYICI"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "HTML çıktısını görüntülemek için %s veya TARAYICI kullan"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "ÇÖZÜNÜRLÜK"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -510,80 +510,80 @@ msgstr ""
"groff kullan ve gxditview (X11) aracılığı ile görüntüle:\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "groff kullan ve ditroff üretmesi için zorla"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Şunun için kılavuz girdisi yok: %s\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Ek olarak, %s bölümünden hangi kılavuz sayfasını istersiniz?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Hangi kılavuz sayfasını istersiniz?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "%s için %s bölümünde kılavuz girdisi yok\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Kılavuz sayfaları mevcut olmadığında yardım için bkz. '%s'.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "bilinmeyen ön işleyici yoksayılıyor `%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "%s, %s olarak adlandırılamıyor"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "%s üzerinde zamanlar ayarlanamıyor"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "%s bağlantısı kaldırılamıyor"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "%s için geçici kategori oluşturulamıyor"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "geçici dizin oluşturulamıyor"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "%s geçici dosyası açılamıyor"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "%s dizini kaldırılamıyor"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr "--Man-- sonraki: %s [ bak (enter) | atla (Ctrl-D) | çık (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -592,27 +592,27 @@ msgstr ""
"\n"
"catman kipinde %s içine yazılamıyor"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "%s cat adına dönüştürülemiyor"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: whatis refs'e dayanmak artık kullanılmıyor\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb komutu %d çıktı durumu ile başarısız oldu"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "dahili hata: aday türü %d aralık dışında"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr "Kılavuz sayfası"
@@ -625,346 +625,344 @@ msgstr "standart çıktıya yazılamıyor"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: tampon sonunda eksik karakter"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f KOD[:...] -t KOD [DOSYAADI]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "KOD[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "özgün metnin muhtemel kodlamaları"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "KOD"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "çıktı için kodlama"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "daha az uyarı üret"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "bir girdi kodlaması belirtilmeli"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "bir çıktı kodlaması belirtilmeli"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANYOLU]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "'sahte' uyarılar hariç sessiz çalış"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "veritabanlarında stray cat arama veya ekleme"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "veritabanlarından gereksiz girdileri budama"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "sadece kullanıcı veritabanlarını üret"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "veritabanlarını güncellemek yerine sıfırdan üret"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "doğrulukları için kılavuz sayfalarını denetle"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "DOSYAADI"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "bu dosya adı için sadece girdiyi güncelle"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "%s kaldırılamıyor"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "%s ögesine yazılamıyor"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "%s ögesinden okunamıyor"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "%s altındaki kılavuz sayfaları işleniyor...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "%s gereksiz cat dizini kaldırılıyor...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"uyarı: %s içinde MANDB_MAP yönergesi yok, yazdığınız manpath kullanılıyor"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d man alt dizini daha yeni kılavuz sayfaları içeriyor.\n"
msgstr[1] "%d man alt dizini daha yeni kılavuz sayfaları içeriyor.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d kılavuz sayfası eklendi.\n"
msgstr[1] "%d kılavuz sayfası eklendi.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d stray cat eklendi.\n"
msgstr[1] "%d stray cat eklendi.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d eski veritabanı girdisi budandı.\n"
msgstr[1] "%d eski veritabanı girdisi budandı.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Hiç veritabanı oluşturulmadı."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "%s manpath yapılandırma dosyası anlaşılamıyor"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "uyarı: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "uyarı: %s bir dizin değil"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "manpath listesi çok uzun"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "uyarı: $PATH ayarlanmamış"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "uyarı: boş $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "uyarı: $MANPATH ayarlanmış, %s öne ekleniyor"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "uyarı: $MANPATH ayarlanmış, %s sona ekleniyor"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "uyarı: $MANPATH ayarlanmış,%s ekleniyor"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "uyarı: $MANPATH ayarlanmış,%s yoksayılıyor"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "`%s' dizin listesi ayrıştırılamıyor"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "%s manpath yapılandırma dosyası açılamıyor"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "uyarı: zorunlu dizin %s mevcut değil"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "geçerli dizine karar verilemiyor"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "uyarı: %s, %s ile başlamıyor"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "ilişkili catpath'leri göster"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "tüm evrensel manpath'i göster"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "uyarı: %s yapılandırma dosyasında ayarlanmış evrensel hiç manpath yok."
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "uyarı: %s sarkan bir sembolik bağlantı"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "%s çözülemiyor"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "%s altında stray cat'ler aranıyor...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "uyarı: %s dizin önbelleği güncellenemiyor"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s kendini iÅŸaret ediyor"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "ANAHTARKELÄ°ME..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "--regex seçeneği öntanımlı olarak etkindir."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "ayrıntılı uyarı iletilerini göster"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "her anahtar kelimeyi düzenli ifade olarak yorumla"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "her anahtar kelimeyi tam eÅŸleÅŸme ile ara"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "anahtar kelime(ler) özel sembol içeriyor"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "tüm anahtar kelimelerin eşleşmesini gerektir"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "çıktıyı uçbirim genişliğine kısıtlama"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "sadece şu alanlarda ara (iki nokta ile ayrılmış)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "bu arama için dili tanımla"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s ne?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "uyarı: %s bir işaretçi döngüsü içeriyor"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(bilinmeyen konu)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: uygun bir ÅŸey yok.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: .so istekleri çok derin yuvalanmış veya içiçe çağrışım yapıyor"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: uyarı: başarısız .so isteği"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: uyarı: .so isteğinde yeni satır, yoksayılıyor"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: uyarı: bozuk .lf isteği, yoksayılıyor"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: uyarı: .lf isteği içinde yeni satır, yoksayılıyor"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: roff isteğinde kapatılmamış kesme işareti"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "uyumluluk anahtarı (yoksayıldı)"
+#~ msgid "manpath list too long"
+#~ msgstr "manpath listesi çok uzun"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "önceki çalışma dizini geri yüklenemiyor"
diff --git a/po/vi.gmo b/po/vi.gmo
index 5ee6afe3..8f976dec 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 8ffadf6a..1de769ce 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2016-12-13 08:08+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -23,58 +23,53 @@ msgstr ""
"X-Generator: Gtranslator 2.91.7\n"
"X-Poedit-SourceCharset: utf-8\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "không thể đặt UID chịu tác động"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "không có ngÆ°á»i dùng hÆ°á»›ng dẫn \"setuid\" \"%s\""
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "không thể \"chown\" (thay đổi quyá»n sở hữu) %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "lá»—i nghiêm trá»ng: biểu thức chính quy “%sâ€: %s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "đa khóa %s không tồn tại"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "không thể khóa bộ nhớ tạm mục lục %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "bá»™ nhá»› tạm mục lục %s bị há»ng"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "không thể thay thế khóa %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "chỉ có %d trÆ°á»ng trong ná»™i dung"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "tiến trình gá»i (fetch) sai vá»›i Ä‘a khóa %s"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr ""
@@ -95,64 +90,64 @@ msgstr "cảnh báo: %s là phiên bản %s, cần %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "lá»—i nghiêm trá»ng: không thể chèn định danh phiên bản vào %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[CƠ SỞ DỮ LIỆU MAN]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "Cơ sở dữ liệu chính có giá trị mặc định là %s%s."
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "phát ra các thông điệp để gỡ lỗi"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "không thể mở %s để Ä‘á»c"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[PHẦN…]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "ÄƯỜNG_DẪN"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "đặt ÄƯỜNG_DẪN Ä‘Æ°á»ng dẫn để tìm kiếm các trang hÆ°á»›ng dẫn"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "TẬP_TIN"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "dùng tập tin cấu hình này"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "lệnh \"man\" đã thất bại với trạng thái thoát là %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "không thể Ä‘á»c cÆ¡ sở dữ liệu %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "nội dung VÔ GIà TRỊ cho khóa: %s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -161,118 +156,123 @@ msgstr ""
"\n"
"Äang cập nhật các tập tin \"cat\" cho phần %s của cây phân cấp \"man\" %s\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "không thể ghi ở trong %s"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "không thể cập nhật %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "cảnh báo: \"%s/man%s/%s.%s*\": phần mở rộng cạnh tranh với nhau"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "không thể cập nhật bộ nhớ tạm mục lục %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "cảnh báo: %s: liên kết má»m sai, hoặc yêu cầu \".so\" ROFF sai"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "cảnh báo: %s: đang bỠqua tập tin rỗng"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr ""
"cảnh báo: %s: việc phân tách kiểu \"whatis\" (là gì?) cho \"%s(%s)\" bị lỗi"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "không thể tìm kiếm trong danh mục %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "không thể \"chown\" (thay đổi quyá»n sở hữu) %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "cảnh báo: không thể tạo catdir (thư mục \"cat\") %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "không thể \"chmod\" (thay đổi chế Ä‘á»™ Ä‘á»c ghi) %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "không thể chuyển sang thư mục %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "không thể tạo bộ nhớ tạm mục lục %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr ""
"Äang cập nhật bá»™ nhá»› tạm mục lục cho Ä‘Æ°á»ng dẫn \"%s/%s\". Vui lòng chá»â€¦"
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "hoàn tất.\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "Äang tẩy các mục tin cÆ¡ sở dữ liệu cÅ© trong %s…\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "cảnh báo: gặp lỗi khi lưu trữ mục tin cho \"%s(%s)\""
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "cảnh báo: %s: đang bỠqua tên tập tin giả"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "ÄƯỜNG DẪN PHẦN TÊN"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "PHẦN_MỞ_RỘNG"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "chỉ tìm kiếm phần mở rộng kiểu PHẦN MỞ RỘNG"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "không phân biệt chữ HOA/thÆ°á»ng khi tìm (mặc định)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "phân biệt chữ HOA/thÆ°á»ng khi tìm"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "phiên dịch tên trang như là một biểu thức chính quy"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "tên trang chứa ký tự đại diện (? * v.v.)"
@@ -284,194 +284,194 @@ msgstr[0] ""
"cảnh báo: thông tin \"whatis\" (là gì?) cho %s vượt quá %d byte nên đang cắt "
"bớt nó."
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "không thể mở %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "TẬP_TIN…"
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "Tùy chá»n mặc định là \"--man\" và \"--whatis\"."
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "phân tích ndạng trang man"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "phân tích dạng trang cat"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "hiển thị thông tin whatis (là gì)"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "hiển thị dãy bá»™ lá»c tiá»n xá»­ lý đã Ä‘oán"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "BẢNG_MÃ"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "dùng bảng mã xuất đã chá»n"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s: các tùy chá»n không tÆ°Æ¡ng thích vá»›i nhau"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "lệnh đã thoát với trạng thái %d: %s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[PHẦN] TRANG…"
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "đặt lại má»i tùy chá»n vá» giá trị mặc định"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "CẢNH_BÃO"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "bật cảnh báo từ groff"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "Chế độ thao tác chính:"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "tÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "tÆ°Æ¡ng Ä‘Æ°Æ¡ng vá»›i apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "quét má»i trang tìm chuá»—i"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "in ra vị trí vật lý của (các) trang man"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "in ra vị trí vật lý của (các) trang cat"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "biên dịch mỗi đối số TRANG là tên tập tin cục bộ"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "được catman dùng để định dạng lại các trang cat cũ"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "xuất trang mã nguồn đã mã hóa bằng BẢNG_MÃ"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "Äang tìm trang hÆ°á»›ng dẫn:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "MIỀN_ÄỊA_PHƯƠNG"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "xác định miá»n địa phÆ°Æ¡ng cho việc tìm kiếm man đặc biệt"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "HỆ_THá»NG"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "dùng trang man từ hệ thống khác"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "DANH_SÃCH"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "dùng danh sách các phần định giới bằng dấu hai chấm"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "hiển thị tất cả các trang khớp mẫu biểu thức chính quy"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "hiển thị tất cả các trang khớp mẫu với ký tự đại diện"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr ""
"làm cho tùy chá»n \"--regex\" và \"--wildcard\" chỉ khá»›p vá»›i tên trang, không "
"phải với phần mô tả"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "tìm tất cả các trang hướng dẫn tương ứng"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "ép buộc kiểm tra tính nhất quán của bộ nhớ tạm"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "đừng thá»­ trang con, v.d. “man foo bar†=> “man foo-barâ€"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "Äiá»u khiển định dạng cho kết xuất:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "DÀN_TRANG"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "dùng chương trình DÀN TRANG để hiển thị kết xuất"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "CHUá»–I"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "cung cấp một dấu nhắc cho bộ dàn trang \"less\""
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "hiển thị bản dịch ASCII của một số ký tự Latin-1 nào đó"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "tắt chức năng gạch nối từ"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "tắt chức năng canh lá»"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -481,34 +481,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "dùng %s để định dạng trang"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "THIẾT_BỊ"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "dùng %s vá»›i thiết bị đã chá»n"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "TRÌNH_DUYỆT"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "dùng %s hoặc TRÌNH DUYỆT để hiển thị kết xuất HTML"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "ÄỘ_PHÂN_GIẢI"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -516,80 +516,80 @@ msgstr ""
"dùng groff và hiển thị thông qua gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "dùng groff và ép buộc nó sản sinh ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "Không có trang hướng dẫn cho \"%s\"\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(Thay vì vậy, bạn muốn trang hướng dẫn nào từ phần %s?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "Bạn muốn trang hướng dẫn nào?\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "Không có trang hướng dẫn cho %s trong phần %s\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "Hãy xem \"%s\" để tìm trợ giúp khi trang hướng dẫn không sẵn sàng.\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "Ä‘ang bá» qua bá»™ tiá»n xá»­ lý trÆ°á»›c không hiểu \"%c\""
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "không thể thay đổi tên %s thành %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "không thể đặt thá»i gian trên %s"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "không thể bỠliên kết %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "không thể tạo \"cat\" tạm cho %s"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "không thể tạo thÆ° mục tạm thá»i"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "không thể mở tập tin tạm %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "không thể gỡ bỠthư mục %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr "--Man-- kế: %s [ xem (enter) | nhảy qua (Ctrl-D) | thoát (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -598,28 +598,28 @@ msgstr ""
"\n"
"không thể ghi vào %s trong chế độ \"catman\""
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "Không thể chuyển đổi %s sang tên \"cat\""
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s: nhỠcác \"ref\" (tham chiếu) của lệnh \"whatis\" bị phản đối\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr ""
"lệnh \"mandb\" (cơ sở dữ liệu hướng dẫn) gặp lỗi với trạng thái thoát là %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "lỗi nội bộ: kiểu ứng cử %d nằm ngoài phạm vi"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Trang hướng dẫn "
@@ -632,347 +632,345 @@ msgstr "không thể ghi vào đầu ra tiêu chuẩn"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv: gặp ký tự không hoàn thành ở kết thúc của vùng đệm"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f MÃ[:…] -t MÃ [TÊN_TẬP_TIN]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "MÃ[:…]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "bảng mã có thể của văn bản gốc"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "MÃ"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "bảng mã cho kết xuất"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "tạo ra ít cảnh báo hơn"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "phải ghi rõ bảng mã đầu vào"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "phải ghi rõ bảng mã xuất ra"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[ÄƯỜNG_DẪN_MAN]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "chạy im, trừ xuất cảnh báo \"giả\""
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "đừng tìm hay thêm vào cơ sở dữ liệu các cat rải rác"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "đừng tẩy khá»i cÆ¡ sở dữ liệu các mục tin cÅ©"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "chỉ tạo các cÆ¡ sở dữ liệu ngÆ°á»i dùng"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "tạo lại cơ sở dữ liệu từ đầu thay cho cập nhật"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "kiểm tra các trang hướng dẫn xem có đúng không"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "TÊN_TẬP_TIN"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "chỉ cập nhật mục tin cho tên tập tin này"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "không thể gỡ bỠ%s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "không thể ghi vào %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "không thể Ä‘á»c từ %s"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "Äang xá»­ lý các trang hÆ°á»›ng dẫn dÆ°á»›i %s…\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "Äang gỡ bá» các thÆ° mục “cat†không dùng nữa %s…\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr ""
"cảnh báo: không có chỉ thị \"MANDB_MAP\" trong “%s†nên sẽ dùng Ä‘Æ°á»ng dẫn "
"hướng dẫn của bạn."
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d thư mục con hướng dẫn chứa trang hướng dẫn mới hơn.\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "%d trang hướng dẫn được thêm vào.\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "%d trang \"cat\" thất lạc đã được thêm vào.\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "%d mục tin cơ sở dữ liệu cũ bị tẩy.\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "Chưa tạo cơ sở dữ liệu."
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "không thể hiểu tập tin cấu hình Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "cảnh báo: %s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "cảnh báo: %s không phải là thư mục"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "danh sách các Ä‘Æ°á»ng dẫn của hÆ°á»›ng dẫn là quá dài"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr ""
"cảnh báo: chÆ°a đặt biến môi trÆ°á»ng \"$PATH\"\n"
"(Ä‘Æ°á»ng dẫn thÆ° mục chứa chÆ°Æ¡ng trình thi hành được)"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "cảnh báo: biến môi trÆ°á»ng \"$PATH\" (Ä‘Æ°á»ng dẫn) trống rá»—ng"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr ""
"cảnh báo: tập hợp \"$MANPATH\" (Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn), Ä‘ang thêm %s vào đầu"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "cảnh báo: tập hợp \"$MANPATH\" (Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn), Ä‘ang phụ thêm %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "cảnh báo: tập hợp \"$MANPATH\" (Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn), Ä‘ang chèn %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "cảnh báo: tập hợp \"$MANPATH\" (Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn), Ä‘ang bá» qua %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "không thể phân tách danh sách thư muc \"%s\""
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "không thể mở tập tin cấu hình Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "cảnh báo: không có thư mục bắt buộc %s"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "không thể tháo gỡ thư mục hiện có"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "cảnh báo: %s không bắt đầu bằng %s"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "hiển thị Ä‘Æ°á»ng dẫn tÆ°Æ¡ng đối cat"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "hiển thị toàn Ä‘Æ°á»ng dẫn toàn cục"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr ""
"cảnh báo: chÆ°a lập Ä‘Æ°á»ng dẫn hÆ°á»›ng dẫn toàn cục trong tập tin cấu hình %s"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "cảnh báo: %s là liên kết má»m không chỉ vào đâu cả"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "không thể phân giải %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "Äang kiểm tra có trang \"cat\" rải rác dÆ°á»›i %s…\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "cảnh báo: không thể cập nhật bộ nhớ tạm mục lục %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s tham chiếu đến chính nó"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "TỪ KHÓA…"
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "Tùy chá»n \"--regex\" (biểu thức chính quy) được bật theo mặc định."
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "in ra cảnh báo dạng chi tiết"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "biên dịch mỗi từ khóa như là một biểu thức chính quy"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "tìm kiếm khớp hoàn toàn từng từ khóa một"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "(các) từ khóa chứa ký tự đại diện (? * v.v.)"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "yêu cầu má»i từ khóa khá»›p"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "đừng xén kết xuất cho bằng bỠrộng của thiết bị cuối"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "chỉ tìm kiếm trong những phần này (ngăn cách bởi dấu hai chấm)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "xác định miá»n địa phÆ°Æ¡ng cho việc tìm kiếm này"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s gì vậy?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "cảnh báo: %s chứa một vòng lặp con trỠ(pointer loop)"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(không hiểu chủ Ä‘á»)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s: không có gì thích hợp cả.\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d: các yêu cầu \".so\" lồng nhau quá sâu hoặc bị đệ quy"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d: cảnh báo: yêu cầu \".so\" bị lỗi"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d: cảnh báo: yêu cầu \".so\" có chứa ký tự dòng mới nên bỠqua"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d: cảnh báo: yêu cầu \".lf\" sai định dạng nên bỠqua"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d: cảnh báo: yêu cầu \".lf\" có chứa ký tự dòng mới nên bỠqua"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d: yêu cầu roff chứa đoạn trích dẫn chưa được chấm dứt"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "các tùy chá»n dùng cho mục đích tÆ°Æ¡ng thích (bị bá» qua)"
+#~ msgid "manpath list too long"
+#~ msgstr "danh sách các Ä‘Æ°á»ng dẫn của hÆ°á»›ng dẫn là quá dài"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "không thể phục hồi lại tạo thư mục làm việc trước đây"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 1974247a..c685d8b8 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index aed56ac2..ccd7713c 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.7.6.1\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2017-11-15 17:53+0800\n"
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -32,60 +32,55 @@ msgstr ""
"X-Generator: Poedit 2.0.4\n"
# need-proofread
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "无法设置有效 uid"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "ä¸å­˜åœ¨ç”¨æ¥å°† man ç¨‹åº setuid 的用户 %s"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "无法 chown %s"
-
# need-proofread
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "致命错误:regex `%s':%s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "多é‡è¯æ¡ %s ä¸å­˜åœ¨"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "无法é”定索引缓存 %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "索引缓存 %s å·²æŸå"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "无法替æ¢è¯æ¡ %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "内容中仅有 %d 个字段"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "获å–了无效的多é‡è¯æ¡ %s"
# need-proofread
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "æ•°æ®åº“ %s å·²æŸå;请用 mandb --create 命令é‡å»º"
@@ -105,67 +100,67 @@ msgstr "警告:%s 的版本是 %s,期望为 %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "致命错误:无法将版本识别符æ’å…¥ %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN æ•°æ®åº“]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "默认的 man æ•°æ®åº“是 %s%s。"
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "输出调试信æ¯"
# need-proofread
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "无法打开 %s 读å–æ•°æ®"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[章节...]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "路径"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "设置æœç´¢æ‰‹å†Œé¡µçš„路径为 PATH"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "文件"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "使用该用户设置文件"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "man 命令失败,退出状æ€ä»£ç ä¸º %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "无法读å–æ•°æ®åº“ %s"
# need-proofread
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "关于 %s è¯æ¡çš„内容为空"
# need-proofread
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -174,120 +169,125 @@ msgstr ""
"\n"
"正在更新 man 目录树 %2$s 中第 %1$s 节的 cat 文件\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "无法在 %s 里写入"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "无法更新 %s"
# need-proofread
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "警告:%s/man%s/%s.%s*:互相竞争的扩展"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "无法更新索引缓存 %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "警告:%s:å的符å·é“¾æŽ¥æˆ–åçš„ ROFF“.soâ€è¯·æ±‚"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "警告:%s:忽略空文件"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "警告:%s:用 whatis 解读 %s(%s) 失败"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "无法æœç´¢ç›®å½• %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "无法 chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "警告:无法创建 catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "无法 chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "无法切æ¢åˆ°ç›®å½• %s 中"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "无法创建索引缓存 %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "正在为路径 %s/%s 更新索引缓存。请等待..."
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "完æˆã€‚\n"
# need-proofread
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "正在删除 %s 里的旧数æ®åº“æ¡ç›®...\n"
# need-proofread
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "警告:为 %s(%s) 存储æ¡ç›®å¤±è´¥"
# need-proofread
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "警告:%s:忽略错误的文件å"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "路径 章节 å称"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "扩展"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "å°†æœç´¢é™åˆ¶åœ¨æ‰©å±•ç±»åž‹ä¸ºâ€œæ‰©å±•â€çš„手册页之内"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "查找手册页时ä¸åŒºåˆ†å¤§å°å†™å­—æ¯ (默认)"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "查找手册页时区分大å°å†™å­—æ¯"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "把页é¢å称当作正则表达å¼è§£è¯»"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "页é¢å称里包å«é€šé…符"
@@ -297,193 +297,193 @@ msgid "warning: whatis for %s exceeds %d byte, truncating."
msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "警告:对 %s çš„ whatis æ“作结果超过 %d 字节,正在截断。"
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "无法打开 %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "文件..."
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "默认选项是 --man 和 --whatis。"
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "当æˆæ‰‹å†Œé¡µè§£è¯»"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "å½“æˆ cat 页解读"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "显示 whatis ä¿¡æ¯"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "显示所猜测的预处ç†è¿‡æ»¤å™¨åºåˆ—"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "ç¼–ç "
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "使用选中的输出编ç "
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s:互ä¸ç›¸å®¹çš„选项"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "å‘½ä»¤ä»¥ä»£ç  %d 状æ€é€€å‡ºï¼š%s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[章节] 手册页..."
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "将所有选项都é‡ç½®ä¸ºé»˜è®¤å€¼"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "警告"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "å¼€å¯ groff 的警告"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "主è¦è¿è¡Œæ¨¡å¼ï¼š"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "ç­‰åŒäºŽ whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "ç­‰åŒäºŽ apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "在所有页é¢ä¸­æœç´¢æ–‡å­—"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "输出手册页的物ç†ä½ç½®"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "输出 cat 文件的物ç†ä½ç½®"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "把“手册页â€å‚数当æˆæœ¬åœ°æ–‡ä»¶åæ¥è§£è¯»"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "ç”± catman 使用,用æ¥å¯¹è¿‡æ—¶çš„ cat 页é‡æ–°æŽ’版"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "以指定编ç è¾“出手册页æºç "
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "寻找手册页:"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "区域"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "定义本次手册页æœç´¢æ‰€é‡‡ç”¨çš„区域设置"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "系统"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "使用æ¥è‡ªå…¶å®ƒç³»ç»Ÿçš„手册页"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "列表"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "使用以åŠè§’冒å·åˆ†éš”的章节列表"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "显示所有匹é…正则表达å¼çš„页é¢"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "显示所有匹é…通é…符的页é¢"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr "使得 --regex å’Œ --wildcard 仅匹é…页é¢å称,ä¸åŒ¹é…æè¿°ä¿¡æ¯"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "寻找所有匹é…的手册页"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "强制进行缓存一致性的检查"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "ä¸è¦å°è¯•å­é¡µé¢ï¼Œå¦‚“man foo bar†=> “man foo-barâ€"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "控制格å¼åŒ–的输出:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "使用 PAGER 程åºæ˜¾ç¤ºè¾“出文本"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "字符串"
# need-proofread
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "ç»™ less 分页器æ供一个æ示行"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "显示æŸäº› latin1 字符的 ASCII 翻译形å¼"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "关闭连字符"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "ç¦æ­¢ä¸¤ç«¯å¯¹é½"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -493,34 +493,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "使用 %s 对手册页排版"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "设备"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "使用 %s 的指定设备"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "æµè§ˆå™¨"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "使用 %s 或指定æµè§ˆå™¨æ˜¾ç¤º HTML 输出"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "分辨率"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -528,81 +528,81 @@ msgstr ""
"使用 groff 并通过 gxditview (X11) æ¥æ˜¾ç¤ºï¼š\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "使用 groff å¹¶å¼ºåˆ¶å®ƒç”Ÿæˆ ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "没有 %s 的手册页æ¡ç›®\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(æ¢å¥è¯é—®ï¼Œæ‚¨éœ€è¦ç¬¬ %s 节中的什么手册页?)\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "您需è¦ä»€ä¹ˆæ‰‹å†Œé¡µï¼Ÿ\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "在第 %2$s 节中没有关于 %1$s 的手册页æ¡ç›®ã€‚\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "当没有手册页时,å¯ä»¥ç”¨ %s 命令æ¥å¯»æ±‚帮助。\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "忽略未知的预处ç†å™¨ `%c'"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "无法将 %s 改å为 %s"
# need-proofread
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "无法设定 %s 文件的时间"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "无法删除 (unlink) %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "无法为 %s 创建临时 cat 文件"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "无法创建临时目录"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "无法打开临时文件 %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "无法移除目录 %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr "--Man-- 下一页: %s [ 查看 (return) | 跳过 (Ctrl-D) | 退出 (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -611,23 +611,23 @@ msgstr ""
"\n"
"无法在 catman 模å¼ä¸‹å¯¹ %s 写入"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "无法把 %s 转æ¢ä¸º cat å称"
# need-proofread
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s:ä¾èµ–于 whatis 引用是已被废弃的åšæ³•\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb 命令失败,退出状æ€ä»£ç ä¸º %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "内部错误:候选类型 %d 超出正常范围"
@@ -635,7 +635,7 @@ msgstr "内部错误:候选类型 %d 超出正常范围"
# I'm not sure this should be translated. It comes from a less prompt string
# but seems to be only part of it. (Ming)
# need-proofread
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " Manual page "
@@ -649,107 +649,107 @@ msgstr "无法对标准输出写入"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv:在缓冲区末尾有ä¸å®Œå…¨çš„字符"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f ç¼–ç [:...] -t ç¼–ç  [文件å]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "ç¼–ç [:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "原始文本å¯èƒ½ä½¿ç”¨çš„ç¼–ç åˆ—表"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "ç¼–ç "
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "输出文本所用的编ç "
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "少显示一些警告"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "必须指定输入所用的编ç "
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "必须指定输出所用的编ç "
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[手册路径]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "安é™è¿è¡Œï¼Œé™¤ bogus 警告外ä¸è¾“出信æ¯"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "ä¸è¦å¯»æ‰¾æˆ–在数æ®åº“中添加孤立 cat 页é¢"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "ä¸è¦åˆ é™¤æ•°æ®åº“中过时的旧æ¡ç›®"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "仅生æˆç”¨æˆ·æ•°æ®åº“"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "ä¸æ›´æ–°æ•°æ®åº“,而是é‡æ–°åˆ›å»ºæ•°æ®åº“"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "检查手册页的正确性"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "文件å"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "仅更新该文件å对应的æ¡ç›®"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "无法移除 %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "无法对 %s 写入"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "无法从 %s 读å–"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "æ­£åœ¨å¤„ç† %s 下的手册页...\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "正在删除过时的 cat 目录 %s...\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "警告:在 %s 中没有 MANDB_MAP 指令,使用您的手册路径设置"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
@@ -758,239 +758,237 @@ msgstr[0] "%d 个 man å­ç›®å½•åŒ…å«æ›´æ–°çš„手册页。\n"
# I'm not sure this should be translated. It comes from a less prompt string
# but seems to be only part of it. (Ming)
# need-proofread
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "添加了 %d 个手册页。\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "添加了 %d 个孤立 cat 页é¢ã€‚\n"
# need-proofread
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "删除了 %d æ¡æ—§æ•°æ®åº“æ¡ç›®ã€‚\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "未创建任何数æ®åº“。"
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "无法ç†è§£æ‰‹å†Œè·¯å¾„设置文件 %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "警告:%s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "警告:%s ä¸æ˜¯ç›®å½•"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "手册路径列表过长"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "警告:没有设定 $PATH"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "警告:$PATH 为空"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "警告:已ç»è®¾å®šäº† $MANPATH,在å‰é¢åŠ ä¸Š %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "警告:已ç»è®¾å®šäº† $MANPATH,在åŽé¢åŠ ä¸Š %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "警告:已ç»è®¾å®šäº† $MANPATH,在其中æ’å…¥ %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "警告:已ç»è®¾å®šäº† $MANPATH,忽略 %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "无法解æžç›®å½•åˆ—表“%sâ€"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "无法打开手册路径设置文件 %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "警告:必需的目录 %s ä¸å­˜åœ¨"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "无法确定当å‰ç›®å½•"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "警告:%s 并éžä»¥ %s 开始"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "显示相对 cat 路径"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "显示整个全局手册路径"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "警告:在设置文件 %s 中没有设定全局手册路径"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "警告:%s 是悬空的符å·é“¾æŽ¥"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "æ— æ³•è§£æž %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "正在 %s 下查找孤立 cat 页é¢...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "警告:无法更新索引缓存 %s"
# need-proofread
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s 是指å‘自己的链接"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "关键è¯..."
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "é»˜è®¤å¼€å¯ --regex 选项。"
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "输出详细的警告信æ¯"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "把æ¯ä¸ªå…³é”®è¯éƒ½å½“作正则表达å¼è§£è¯»"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "对æ¯ä¸ªå…³é”®è¯éƒ½è¿›è¡Œä¸¥æ ¼åŒ¹é…çš„æœç´¢"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "关键è¯é‡ŒåŒ…å«é€šé…符"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "è¦æ±‚所有的关键è¯éƒ½åŒæ—¶åŒ¹é…"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "ä¸è¦æŠŠè¾“出按终端宽度截断"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "仅在这些分区中æœç´¢ï¼ˆå†’å·åˆ†éš”)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "定义本次æœç´¢æ‰€ä½¿ç”¨çš„区域设置"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s 什么?\n"
# need-proofread
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "警告:%s 包å«ä¸€ä¸ªæŒ‡é’ˆå›žçŽ¯"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(未知的主题)"
# partially-translated
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s:没有åˆé€‚结果。\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d:.so 请求嵌套太深或形æˆå¾ªçŽ¯"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d:警告:.so 请求失败"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d:警告:.so 请求中å«æœ‰æ¢è¡Œç¬¦ï¼Œå°†å¿½ç•¥"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d:警告:ä¸åˆè§„格的 .lf 请求,将忽略"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d:警告:.lf 请求中å«æœ‰æ¢è¡Œç¬¦ï¼Œå°†å¿½ç•¥"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d:roff 请求中å«æœ‰æœªç»“æŸçš„引用"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "兼容性选项 (将被忽略)"
+#~ msgid "manpath list too long"
+#~ msgstr "手册路径列表过长"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "无法æ¢å¤è‡³å…ˆå‰çš„工作目录"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index e0d117a6..07c70198 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index d53785f8..4badbb66 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: man-db 2.8.0-pre2\n"
"Report-Msgid-Bugs-To: Colin Watson <cjwatson@debian.org>\n"
-"POT-Creation-Date: 2019-01-05 09:27+0000\n"
+"POT-Creation-Date: 2019-08-03 11:23+0100\n"
"PO-Revision-Date: 2018-05-09 19:02+0800\n"
"Last-Translator: pan93412 <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -19,58 +19,53 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.0.6\n"
-#: lib/security.c:78
+#: lib/security.c:79
#, c-format
msgid "can't set effective uid"
msgstr "無法設定有效的 UID"
-#: lib/security.c:117
+#: lib/security.c:118
#, c-format
msgid "the setuid man user \"%s\" does not exist"
msgstr "æ­¤ setuid man 使用者「%sã€ä¸å­˜åœ¨"
-#: lib/xchown.c:38 lib/xchown.c:47 src/man.c:1742
-#, c-format
-msgid "can't chown %s"
-msgstr "無法 chown %s"
-
#: lib/xregcomp.c:47
#, c-format
msgid "fatal: regex `%s': %s"
msgstr "åš´é‡éŒ¯èª¤ï¼šæ­£è¦è¡¨é”å¼ã€Œ%sã€ï¼š%s"
-#: libdb/db_delete.c:103
+#: libdb/db_delete.c:105
#, c-format
msgid "multi key %s does not exist"
msgstr "多é‡æŒ‰éµ %s ä¸å­˜åœ¨"
-#: libdb/db_lookup.c:72
+#: libdb/db_lookup.c:75
#, c-format
msgid "can't lock index cache %s"
msgstr "ç„¡æ³•éŽ–å®šç´¢å¼•å¿«å– %s"
-#: libdb/db_lookup.c:79
+#: libdb/db_lookup.c:82
#, c-format
msgid "index cache %s corrupt"
msgstr "ç´¢å¼•å¿«å– %s 失敗"
-#: libdb/db_lookup.c:85
+#: libdb/db_lookup.c:88
#, c-format
msgid "cannot replace key %s"
msgstr "無法替æ›æŒ‰éµ %s"
-#: libdb/db_lookup.c:181 libdb/db_lookup.c:192
+#: libdb/db_lookup.c:183 libdb/db_lookup.c:194
#, c-format
msgid "only %d field in content"
msgid_plural "only %d fields in content"
msgstr[0] "內容中åªæœ‰ %d 個欄ä½"
-#: libdb/db_lookup.c:343
+#: libdb/db_lookup.c:358
#, c-format
msgid "bad fetch on multi key %s"
msgstr "多é‡æŒ‰éµ %s 上失敗的æå–"
-#: libdb/db_lookup.c:416 src/whatis.c:761
+#: libdb/db_lookup.c:443 src/whatis.c:739
#, c-format
msgid "Database %s corrupted; rebuild with mandb --create"
msgstr "資料庫 %s æ壞;é€éŽ mandb --create é‡å»º"
@@ -90,64 +85,64 @@ msgstr "警告:%s 為版本 %s,é æœŸç‚º %s\n"
msgid "fatal: unable to insert version identifier into %s"
msgstr "åš´é‡éŒ¯èª¤ï¼šç„¡æ³•æ’入版本識別碼至 %s"
-#: src/accessdb.c:60
+#: src/accessdb.c:61
msgid "[MAN DATABASE]"
msgstr "[MAN 資料庫]"
-#: src/accessdb.c:61
+#: src/accessdb.c:62
#, c-format
msgid "The man database defaults to %s%s."
msgstr "man 資料庫é è¨­å€¼è‡³ %s%s。"
-#: src/accessdb.c:64 src/catman.c:100 src/globbing_test.c:59
-#: src/lexgrog_test.c:69 src/man.c:278 src/manconv_main.c:95 src/mandb.c:111
-#: src/manpath.c:66 src/whatis.c:124 src/zsoelim_main.c:67
+#: src/accessdb.c:65 src/catman.c:103 src/globbing_test.c:62
+#: src/lexgrog_test.c:73 src/man.c:268 src/manconv_main.c:96 src/mandb.c:115
+#: src/manpath.c:67 src/whatis.c:127 src/zsoelim_main.c:69
msgid "emit debugging messages"
msgstr "發出åµéŒ¯è¨Šæ¯"
-#: src/accessdb.c:136
+#: src/accessdb.c:137
#, c-format
msgid "can't open %s for reading"
msgstr "ç„¡æ³•è®€å– %s"
-#: src/catman.c:97
+#: src/catman.c:100
msgid "[SECTION...]"
msgstr "[章節…]"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "PATH"
msgstr "ä½ç½®"
-#: src/catman.c:101 src/man.c:299 src/whatis.c:134
+#: src/catman.c:104 src/man.c:289 src/whatis.c:137
msgid "set search path for manual pages to PATH"
msgstr "設定手冊é é¢çš„æœå°‹è·¯å¾‘至 PATH"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "FILE"
msgstr "檔案"
-#: src/catman.c:102 src/man.c:277 src/mandb.c:119 src/manpath.c:68
-#: src/whatis.c:136
+#: src/catman.c:105 src/man.c:267 src/mandb.c:123 src/manpath.c:69
+#: src/whatis.c:139
msgid "use this user configuration file"
msgstr "使用這個使用者設定檔"
-#: src/catman.c:195
+#: src/catman.c:198
#, c-format
msgid "man command failed with exit status %d"
msgstr "man 指令錯誤,離開代碼 %d"
-#: src/catman.c:234
+#: src/catman.c:237
#, c-format
msgid "cannot read database %s"
msgstr "無法讀å–資料庫 %s"
-#: src/catman.c:277
+#: src/catman.c:280
#, c-format
msgid "NULL content for key: %s"
msgstr "金鑰的空內容:%s"
-#: src/catman.c:292
+#: src/catman.c:295
#, c-format
msgid ""
"\n"
@@ -156,116 +151,121 @@ msgstr ""
"\n"
"æ›´æ–° man 層次çµæ§‹ %2$s 的第 %1$s 部份的 cat 檔案\n"
-#: src/catman.c:346
+#: src/catman.c:349
#, c-format
msgid "cannot write within %s"
msgstr "無法在 %s 中寫入"
-#: src/catman.c:423
+#: src/catman.c:426
#, c-format
msgid "unable to update %s"
msgstr "無法更新 %s"
-#: src/check_mandirs.c:96
+#: src/check_mandirs.c:100
#, c-format
msgid "warning: %s/man%s/%s.%s*: competing extensions"
msgstr "警告:%s/man%s/%s.%s*:競爭擴展 (competing extensions)"
-#: src/check_mandirs.c:110 src/check_mandirs.c:621
+#: src/check_mandirs.c:114 src/check_mandirs.c:613
#, c-format
msgid "can't update index cache %s"
msgstr "ç„¡æ³•æ›´æ–°ç´¢å¼•å¿«å– %s"
-#: src/check_mandirs.c:238
+#: src/check_mandirs.c:242
#, c-format
msgid "warning: %s: bad symlink or ROFF `.so' request"
msgstr "警告:%s:æ壞的符號連çµæˆ– ROFF `.so' 請求"
-#: src/check_mandirs.c:296
+#: src/check_mandirs.c:298
#, c-format
msgid "warning: %s: ignoring empty file"
msgstr "警告:%s:忽略空檔案"
-#: src/check_mandirs.c:300 src/straycats.c:285
+#: src/check_mandirs.c:302 src/straycats.c:276
#, c-format
msgid "warning: %s: whatis parse for %s(%s) failed"
msgstr "警告:%s:為 %s(%s) çš„ whatis 解æžå¤±æ•—"
-#: src/check_mandirs.c:327 src/check_mandirs.c:506 src/mandb.c:879
-#: src/straycats.c:80 src/straycats.c:314 src/ult_src.c:80
+#: src/check_mandirs.c:329 src/check_mandirs.c:498 src/mandb.c:883
+#: src/straycats.c:84 src/straycats.c:303 src/ult_src.c:81
#, c-format
msgid "can't search directory %s"
msgstr "無法æœå°‹è·¯å¾‘ %s"
-#: src/check_mandirs.c:408 src/check_mandirs.c:431
+#: src/check_mandirs.c:378 src/man.c:1687
+#, c-format
+msgid "can't chown %s"
+msgstr "無法 chown %s"
+
+#: src/check_mandirs.c:400 src/check_mandirs.c:423
#, c-format
msgid "warning: cannot create catdir %s"
msgstr "警告:無法建立 catdir %s"
-#: src/check_mandirs.c:463 src/man.c:1754 src/mandb.c:229
+#: src/check_mandirs.c:455 src/man.c:1699 src/mandb.c:233
#, c-format
msgid "can't chmod %s"
msgstr "無法 chmod %s"
-#: src/check_mandirs.c:511
+#: src/check_mandirs.c:503
#, c-format
msgid "can't change to directory %s"
msgstr "無法切æ›è‡³ç›®éŒ„ %s"
-#: src/check_mandirs.c:561
+#: src/check_mandirs.c:553
#, c-format
msgid "can't create index cache %s"
msgstr "ç„¡æ³•å»ºç«‹ç´¢å¼•å¿«å– %s"
-#: src/check_mandirs.c:586
+#: src/check_mandirs.c:578
#, c-format
msgid "Updating index cache for path `%s/%s'. Wait..."
msgstr "正在為路徑「%s/%sã€æ›´æ–°ç´¢å¼•å¿«å–。請等待…"
-#: src/check_mandirs.c:648 src/check_mandirs.c:709
+#: src/check_mandirs.c:640 src/check_mandirs.c:701
msgid "done.\n"
msgstr "完æˆã€‚\n"
-#: src/check_mandirs.c:968
+#: src/check_mandirs.c:963
#, c-format
msgid "Purging old database entries in %s...\n"
msgstr "正在清除 %s 中的舊資料庫項目…\n"
-#: src/descriptions_store.c:47
+#: src/descriptions_store.c:51
#, c-format
msgid "warning: failed to store entry for %s(%s)"
msgstr "警告:無法為 %s(%s) 儲存項目"
-#: src/filenames.c:48 src/straycats.c:126 src/straycats.c:155
+#: src/filenames.c:48 src/straycats.c:124 src/straycats.c:153
#, c-format
msgid "warning: %s: ignoring bogus filename"
msgstr "警告:%s:忽略å‡æª”案å稱"
-#: src/globbing_test.c:56
+#: src/globbing_test.c:59
msgid "PATH SECTION NAME"
msgstr "路徑部份å稱"
-#: src/globbing_test.c:60 src/man.c:302
+#: src/globbing_test.c:63 src/man.c:292
msgid "EXTENSION"
msgstr "EXTENSION"
-#: src/globbing_test.c:60 src/man.c:303
+#: src/globbing_test.c:63 src/man.c:293
msgid "limit search to extension type EXTENSION"
msgstr "é™åˆ¶æœå°‹æ“´å……元件類型 EXTENSION"
-#: src/globbing_test.c:61 src/man.c:304
+#: src/globbing_test.c:64 src/man.c:294
msgid "look for pages case-insensitively (default)"
msgstr "ä¸å€åˆ†å¤§å°å¯«æœå°‹é é¢ï¼ˆé è¨­ï¼‰"
-#: src/globbing_test.c:62 src/man.c:305
+#: src/globbing_test.c:65 src/man.c:295
msgid "look for pages case-sensitively"
msgstr "å€åˆ†å¤§å°å¯«æœå°‹é é¢"
-#: src/globbing_test.c:63
+#: src/globbing_test.c:66
msgid "interpret page name as a regex"
msgstr "å°‡é é¢å稱解釋為正è¦è¡¨é”å¼"
-#: src/globbing_test.c:64
+#: src/globbing_test.c:67
msgid "the page name contains wildcards"
msgstr "é é¢åç¨±åŒ…å« Wildcard"
@@ -275,192 +275,192 @@ msgid "warning: whatis for %s exceeds %d byte, truncating."
msgid_plural "warning: whatis for %s exceeds %d bytes, truncating."
msgstr[0] "警告:為 %s çš„ whatis 超出 %d ä½å…ƒçµ„,正在截斷。"
-#: src/lexgrog.l:844 src/man.c:2323 src/man.c:2405 src/man.c:2503
-#: src/manconv_main.c:167 src/straycats.c:224 src/ult_src.c:345
-#: src/ult_src.c:359 src/zsoelim.l:505
+#: src/lexgrog.l:844 src/man.c:2268 src/man.c:2350 src/man.c:2448
+#: src/manconv_main.c:168 src/straycats.c:218 src/ult_src.c:321
+#: src/ult_src.c:335 src/zsoelim.l:512
#, c-format
msgid "can't open %s"
msgstr "無法開啟 %s"
-#: src/lexgrog_test.c:65 src/zsoelim_main.c:64
+#: src/lexgrog_test.c:69 src/zsoelim_main.c:66
msgid "FILE..."
msgstr "檔案…"
-#: src/lexgrog_test.c:66
+#: src/lexgrog_test.c:70
msgid "The defaults are --man and --whatis."
msgstr "é è¨­å€¼ç‚º --man 與 --whatis。"
-#: src/lexgrog_test.c:70
+#: src/lexgrog_test.c:74
msgid "parse as man page"
msgstr "解æžç‚º man é é¢"
-#: src/lexgrog_test.c:71
+#: src/lexgrog_test.c:75
msgid "parse as cat page"
msgstr "解æžç‚º cat é é¢"
-#: src/lexgrog_test.c:72
+#: src/lexgrog_test.c:76
msgid "show whatis information"
msgstr "顯示 whatis 資訊"
-#: src/lexgrog_test.c:73
+#: src/lexgrog_test.c:77
msgid "show guessed series of preprocessing filters"
msgstr "顯示猜測的一系列é å…ˆè™•ç†ç¯©é¸å™¨"
-#: src/lexgrog_test.c:74 src/man.c:294 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:284 src/man.c:309
msgid "ENCODING"
msgstr "編碼中"
-#: src/lexgrog_test.c:74 src/man.c:319
+#: src/lexgrog_test.c:78 src/man.c:309
msgid "use selected output encoding"
msgstr "使用é¸æ“‡çš„輸出編碼"
-#: src/lexgrog_test.c:118 src/man.c:553 src/man.c:562
+#: src/lexgrog_test.c:122 src/man.c:540 src/man.c:549
#, c-format
msgid "%s: incompatible options"
msgstr "%s:ä¸ç›¸å®¹é¸é …"
-#: src/man.c:163
+#: src/man.c:160
#, c-format
msgid "command exited with status %d: %s"
msgstr "指令離開,回傳代碼 %d:%s"
-#: src/man.c:261
+#: src/man.c:251
msgid "[SECTION] PAGE..."
msgstr "[章節] é é¢â€¦"
-#: src/man.c:279
+#: src/man.c:269
msgid "reset all options to their default values"
msgstr "é‡è¨­æ‰€æœ‰è¨­å®šè‡³ä»–們的é è¨­å€¼"
-#: src/man.c:280
+#: src/man.c:270
msgid "WARNINGS"
msgstr "警告"
-#: src/man.c:281
+#: src/man.c:271
msgid "enable warnings from groff"
msgstr "啟用來自 groff 的警告"
-#: src/man.c:283
+#: src/man.c:273
msgid "Main modes of operation:"
msgstr "動作主è¦æ¨¡å¼ï¼š"
-#: src/man.c:284
+#: src/man.c:274
msgid "equivalent to whatis"
msgstr "相當於 whatis"
-#: src/man.c:285
+#: src/man.c:275
msgid "equivalent to apropos"
msgstr "相當於 apropos"
-#: src/man.c:286
+#: src/man.c:276
msgid "search for text in all pages"
msgstr "在所有é é¢ä¸­æœå°‹æ–‡å­—"
-#: src/man.c:287
+#: src/man.c:277
msgid "print physical location of man page(s)"
msgstr "顯示 man é é¢çš„物ç†ä½ç½®"
-#: src/man.c:290
+#: src/man.c:280
msgid "print physical location of cat file(s)"
msgstr "顯示 cat 檔案的物ç†ä½ç½®"
-#: src/man.c:292
+#: src/man.c:282
msgid "interpret PAGE argument(s) as local filename(s)"
msgstr "解譯 PAGE åƒæ•¸ç‚ºæœ¬æ©Ÿæª”案å稱"
-#: src/man.c:293
+#: src/man.c:283
msgid "used by catman to reformat out of date cat pages"
msgstr "catman 使用其é‡æ–°æ ¼å¼åŒ–éŽæœŸçš„ cat é é¢"
-#: src/man.c:294
+#: src/man.c:284
msgid "output source page encoded in ENCODING"
msgstr "在 ENCODING 中編碼輸出原始é é¢"
-#: src/man.c:296
+#: src/man.c:286
msgid "Finding manual pages:"
msgstr "正在æœå°‹æ‰‹å†Šé é¢ï¼š"
-#: src/man.c:297 src/whatis.c:135
+#: src/man.c:287 src/whatis.c:138
msgid "LOCALE"
msgstr "語系"
-#: src/man.c:297
+#: src/man.c:287
msgid "define the locale for this particular man search"
msgstr "為此特定的 man æœå°‹å®šç¾©èªžè¨€"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "SYSTEM"
msgstr "系統"
-#: src/man.c:298 src/manpath.c:69 src/whatis.c:133
+#: src/man.c:288 src/manpath.c:70 src/whatis.c:136
msgid "use manual pages from other systems"
msgstr "從系統系統使用手冊é é¢"
-#: src/man.c:300 src/whatis.c:131
+#: src/man.c:290 src/whatis.c:134
msgid "LIST"
msgstr "列表"
-#: src/man.c:300
+#: src/man.c:290
msgid "use colon separated section list"
msgstr "使用冒號分隔的部分列表"
-#: src/man.c:306
+#: src/man.c:296
msgid "show all pages matching regex"
msgstr "é¡¯ç¤ºæ‰€æœ‰ç¬¦åˆ regex çš„é é¢"
-#: src/man.c:307
+#: src/man.c:297
msgid "show all pages matching wildcard"
msgstr "é¡¯ç¤ºæ‰€æœ‰ç¬¦åˆ wildcard çš„é é¢"
-#: src/man.c:308
+#: src/man.c:298
msgid "make --regex and --wildcard match page names only, not descriptions"
msgstr "令 --regex å’Œ --wildcard åªç¬¦åˆé é¢å稱,而ä¸åŒ…å«ä»‹ç´¹ã€‚"
-#: src/man.c:310
+#: src/man.c:300
msgid "find all matching manual pages"
msgstr "æœå°‹æ‰€æœ‰ç¬¦åˆçš„手冊é é¢"
-#: src/man.c:311
+#: src/man.c:301
msgid "force a cache consistency check"
msgstr "強制快å–一致性檢查"
-#: src/man.c:313
+#: src/man.c:303
msgid "don't try subpages, e.g. 'man foo bar' => 'man foo-bar'"
msgstr "ä¸è¦å˜—試å­é é¢ï¼Œä¾‹å¦‚「man foo barã€=>「man foo-barã€"
-#: src/man.c:315
+#: src/man.c:305
msgid "Controlling formatted output:"
msgstr "控制格å¼åŒ–輸出:"
-#: src/man.c:316
+#: src/man.c:306
msgid "PAGER"
msgstr "PAGER"
-#: src/man.c:316
+#: src/man.c:306
msgid "use program PAGER to display output"
msgstr "使用 PAGER 程å¼é¡¯ç¤ºè¼¸å‡º"
-#: src/man.c:317 src/man.c:326
+#: src/man.c:307 src/man.c:316
msgid "STRING"
msgstr "字串"
-#: src/man.c:317
+#: src/man.c:307
msgid "provide the `less' pager with a prompt"
msgstr "æ供「較少的ã€pager æ示。"
-#: src/man.c:318
+#: src/man.c:308
msgid "display ASCII translation of certain latin1 chars"
msgstr "顯示æŸäº› latin1 字元的 ASCII 轉æ›"
-#: src/man.c:321
+#: src/man.c:311
msgid "turn off hyphenation"
msgstr "關閉斷字"
-#: src/man.c:324
+#: src/man.c:314
msgid "turn off justification"
msgstr "關閉ç†ç”± (justification)"
-#: src/man.c:326
+#: src/man.c:316
msgid ""
"STRING indicates which preprocessors to run:\n"
"e - [n]eqn, p - pic, t - tbl,\n"
@@ -470,34 +470,34 @@ msgstr ""
"e - [n]eqn, p - pic, t - tbl,\n"
"g - grap, r - refer, v - vgrind"
-#: src/man.c:330
+#: src/man.c:320
#, c-format
msgid "use %s to format pages"
msgstr "使用 %s æ ¼å¼åŒ–é é¢"
-#: src/man.c:331
+#: src/man.c:321
msgid "DEVICE"
msgstr "è£ç½®"
-#: src/man.c:332
+#: src/man.c:322
#, c-format
msgid "use %s with selected device"
msgstr "é€éŽé¸å–çš„è£ç½®ä½¿ç”¨ %s"
-#: src/man.c:333
+#: src/man.c:323
msgid "BROWSER"
msgstr "ç€è¦½å™¨"
-#: src/man.c:334
+#: src/man.c:324
#, c-format
msgid "use %s or BROWSER to display HTML output"
msgstr "使用 %s 或ç€è¦½å™¨é¡¯ç¤º HTML 輸出"
-#: src/man.c:335
+#: src/man.c:325
msgid "RESOLUTION"
msgstr "解æžåº¦"
-#: src/man.c:337
+#: src/man.c:327
msgid ""
"use groff and display through gxditview (X11):\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
@@ -505,80 +505,80 @@ msgstr ""
"é€éŽ gxditview (X11) 使用 groff 和顯示:\n"
"-X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12"
-#: src/man.c:339
+#: src/man.c:329
msgid "use groff and force it to produce ditroff"
msgstr "使用 groff 並強制其產生 ditroff"
-#: src/man.c:610 src/man.c:788
+#: src/man.c:597 src/man.c:733
#, c-format
msgid "No manual entry for %s\n"
msgstr "沒有 %s 的手冊項目\n"
-#: src/man.c:612
+#: src/man.c:599
#, c-format
msgid "(Alternatively, what manual page do you want from section %s?)\n"
msgstr "(或者,您想從第 %s 章節中é¸æ“‡å“ªå€‹æ‰‹å†Šé é¢ï¼Ÿï¼‰\n"
-#: src/man.c:616
+#: src/man.c:603
msgid "What manual page do you want?\n"
msgstr "你想è¦ä»€éº¼æ‰‹å†Šï¼Ÿ\n"
-#: src/man.c:785
+#: src/man.c:730
#, c-format
msgid "No manual entry for %s in section %s\n"
msgstr "%2$s 部份中沒有 %1$s 的手冊項目\n"
-#: src/man.c:794
+#: src/man.c:739
#, c-format
msgid "See '%s' for help when manual pages are not available.\n"
msgstr "當說明書ä¸å¯ç”¨æ™‚,查看「%sã€å–得說明。\n"
-#: src/man.c:1402
+#: src/man.c:1347
#, c-format
msgid "ignoring unknown preprocessor `%c'"
msgstr "忽略未知的é è™•ç†æ©Ÿã€Œ%cã€"
-#: src/man.c:1765 src/mandb.c:220
+#: src/man.c:1710 src/mandb.c:224
#, c-format
msgid "can't rename %s to %s"
msgstr "無法é‡æ–°å‘½å %s 至 %s"
-#: src/man.c:1782
+#: src/man.c:1727
#, c-format
msgid "can't set times on %s"
msgstr "無法在 %s 上設定時間"
-#: src/man.c:1791 src/man.c:1828
+#: src/man.c:1736 src/man.c:1773
#, c-format
msgid "can't unlink %s"
msgstr "ç„¡æ³•è§£é™¤é€£çµ %s"
-#: src/man.c:1858
+#: src/man.c:1803
#, c-format
msgid "can't create temporary cat for %s"
msgstr "無法為 %s 建立暫存 cat"
-#: src/man.c:1968
+#: src/man.c:1913
#, c-format
msgid "can't create temporary directory"
msgstr "無法建立暫存目錄"
-#: src/man.c:1979
+#: src/man.c:1924
#, c-format
msgid "can't open temporary file %s"
msgstr "無法開啟暫存檔案 %s"
-#: src/man.c:2009 src/man.c:2038
+#: src/man.c:1954 src/man.c:1983
#, c-format
msgid "can't remove directory %s"
msgstr "無法移除目錄 %s"
-#: src/man.c:2167
+#: src/man.c:2112
#, c-format
msgid "--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]\n"
msgstr "--Man-- 下一個:%s [ 顯示 (return) | è·³éŽ (Ctrl-D) | 離開 (Ctrl-C) ]\n"
-#: src/man.c:2448
+#: src/man.c:2393
#, c-format
msgid ""
"\n"
@@ -587,27 +587,27 @@ msgstr ""
"\n"
"無法在 catman 模å¼å¯«è‡³ %s"
-#: src/man.c:2529
+#: src/man.c:2474
#, c-format
msgid "Can't convert %s to cat name"
msgstr "ç„¡æ³•è½‰æ› %s 至 cat å稱"
-#: src/man.c:3253
+#: src/man.c:3203
#, c-format
msgid "%s: relying on whatis refs is deprecated\n"
msgstr "%s:ä¾é  whatis çš„åƒè€ƒå·²ç¶“放棄\n"
-#: src/man.c:3401 src/man.c:4250
+#: src/man.c:3346 src/man.c:4196
#, c-format
msgid "mandb command failed with exit status %d"
msgstr "mandb 指令執行失敗,回傳代碼 %d"
-#: src/man.c:3606
+#: src/man.c:3548
#, c-format
msgid "internal error: candidate type %d out of range"
msgstr "內部錯誤:候é¸é¡žåž‹ %d 超出範åœ"
-#: src/man.c:4191
+#: src/man.c:4137
msgid " Manual page "
msgstr " 手冊é é¢ "
@@ -620,341 +620,339 @@ msgstr "無法寫至標準輸出"
msgid "iconv: incomplete character at end of buffer"
msgstr "iconv:在緩è¡å€å°¾ç«¯å«æœ‰ä¸å®Œå…¨çš„符號"
-#: src/manconv_main.c:89
+#: src/manconv_main.c:90
msgid "-f CODE[:...] -t CODE [FILENAME]"
msgstr "-f CODE[:...] -t CODE [ 檔案å稱 ]"
-#: src/manconv_main.c:92
+#: src/manconv_main.c:93
msgid "CODE[:...]"
msgstr "CODE[:...]"
-#: src/manconv_main.c:93
+#: src/manconv_main.c:94
msgid "possible encodings of original text"
msgstr "原始文字的å¯èƒ½ç·¨ç¢¼æ–¹å¼"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "CODE"
msgstr "CODE"
-#: src/manconv_main.c:94
+#: src/manconv_main.c:95
msgid "encoding for output"
msgstr "輸出編碼"
-#: src/manconv_main.c:96 src/manpath.c:67
+#: src/manconv_main.c:97 src/manpath.c:68
msgid "produce fewer warnings"
msgstr "產生較少的警告"
-#: src/manconv_main.c:131 src/manconv_main.c:140
+#: src/manconv_main.c:132 src/manconv_main.c:141
#, c-format
msgid "must specify an input encoding"
msgstr "需è¦æŒ‡å®šè¼¸å…¥ç·¨ç¢¼"
-#: src/manconv_main.c:135
+#: src/manconv_main.c:136
#, c-format
msgid "must specify an output encoding"
msgstr "需è¦æŒ‡å®šè¼¸å‡ºç·¨ç¢¼"
-#: src/mandb.c:108
+#: src/mandb.c:112
msgid "[MANPATH]"
msgstr "[MANPATH]"
-#: src/mandb.c:112
+#: src/mandb.c:116
msgid "work quietly, except for 'bogus' warning"
msgstr "安éœçš„執行,除了「bogusã€è­¦å‘Š"
-#: src/mandb.c:113
+#: src/mandb.c:117
msgid "don't look for or add stray cats to the dbs"
msgstr "ä¸è¦å°‹æ‰¾æˆ–增加 stray cats 至資料庫"
-#: src/mandb.c:114
+#: src/mandb.c:118
msgid "don't purge obsolete entries from the dbs"
msgstr "ä¸è¦å¾žè³‡æ–™åº«æ¸…除éŽæœŸçš„é …ç›®"
-#: src/mandb.c:115
+#: src/mandb.c:119
msgid "produce user databases only"
msgstr "åªç”¢ç”Ÿä½¿ç”¨è€…資料庫"
-#: src/mandb.c:116
+#: src/mandb.c:120
msgid "create dbs from scratch, rather than updating"
msgstr "從頭建立資料庫,而ä¸æ˜¯å‡ç´šã€‚"
-#: src/mandb.c:117
+#: src/mandb.c:121
msgid "check manual pages for correctness"
msgstr "檢查手冊é é¢çš„正確性"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "FILENAME"
msgstr "檔案å稱"
-#: src/mandb.c:118
+#: src/mandb.c:122
msgid "update just the entry for this filename"
msgstr "åªæ›´æ–°æ­¤æª”案å稱的項目"
-#: src/mandb.c:213
+#: src/mandb.c:217
#, c-format
msgid "can't remove %s"
msgstr "無法移除 %s"
-#: src/mandb.c:277
+#: src/mandb.c:281
#, c-format
msgid "can't write to %s"
msgstr "無法寫至 %s"
-#: src/mandb.c:282
+#: src/mandb.c:286
#, c-format
msgid "can't read from %s"
msgstr "無法從 %s 讀å–"
-#: src/mandb.c:450
+#: src/mandb.c:455
#, c-format
msgid "Processing manual pages under %s...\n"
msgstr "正在 %s 底下處ç†æ‰‹å†Šé é¢â€¦\n"
-#: src/mandb.c:667 src/mandb.c:693
+#: src/mandb.c:672 src/mandb.c:698
#, c-format
msgid "Removing obsolete cat directory %s...\n"
msgstr "移除éŽæ™‚çš„ cat 路徑 %s…\n"
-#: src/mandb.c:844
+#: src/mandb.c:848
#, c-format
msgid "warning: no MANDB_MAP directives in %s, using your manpath"
msgstr "警告:%s 中沒有 MANDB_MAP 指令,使用您的 manpath"
-#: src/mandb.c:916
+#: src/mandb.c:920
#, c-format
msgid "%d man subdirectory contained newer manual pages.\n"
msgid_plural "%d man subdirectories contained newer manual pages.\n"
msgstr[0] "%d 個 man å­ç›®éŒ„包å«äº†è¼ƒæ–°çš„手冊é é¢\n"
-#: src/mandb.c:921
+#: src/mandb.c:925
#, c-format
msgid "%d manual page was added.\n"
msgid_plural "%d manual pages were added.\n"
msgstr[0] "加入了 %d 個手冊é é¢\n"
-#: src/mandb.c:925
+#: src/mandb.c:929
#, c-format
msgid "%d stray cat was added.\n"
msgid_plural "%d stray cats were added.\n"
msgstr[0] "加入了 %d 個 stray cat\n"
-#: src/mandb.c:930
+#: src/mandb.c:934
#, c-format
msgid "%d old database entry was purged.\n"
msgid_plural "%d old database entries were purged.\n"
msgstr[0] "清除了 %d 個舊資料庫項目。\n"
-#: src/mandb.c:948
+#: src/mandb.c:952
#, c-format
msgid "No databases created."
msgstr "沒有建立的資料庫"
-#: src/manp.c:327
+#: src/manp.c:349
#, c-format
msgid "can't make sense of the manpath configuration file %s"
msgstr "無法åˆç†åŒ– manpath 設定檔 %s"
-#: src/manp.c:333
+#: src/manp.c:355
#, c-format
msgid "warning: %s"
msgstr "警告:%s"
-#: src/manp.c:339
+#: src/manp.c:361
#, c-format
msgid "warning: %s isn't a directory"
msgstr "警告:%s ä¸æ˜¯ç›®éŒ„"
-#: src/manp.c:344
-#, c-format
-msgid "manpath list too long"
-msgstr "manpath 列表太長"
-
-#: src/manp.c:675
+#: src/manp.c:692
#, c-format
msgid "warning: $PATH not set"
msgstr "警告:未設定 $PATH"
-#: src/manp.c:682
+#: src/manp.c:699
#, c-format
msgid "warning: empty $PATH"
msgstr "警告:空 $PATH"
-#: src/manp.c:710
+#: src/manp.c:727
#, c-format
msgid "warning: $MANPATH set, prepending %s"
msgstr "警告:已設定 $MANPATH,正在å‰é¢åŠ ä¸Š %s"
-#: src/manp.c:721
+#: src/manp.c:738
#, c-format
msgid "warning: $MANPATH set, appending %s"
msgstr "警告:已設定 $MANPATH,正在增加 %s"
-#: src/manp.c:733
+#: src/manp.c:750
#, c-format
msgid "warning: $MANPATH set, inserting %s"
msgstr "警告:已設定 $MANPATH,正在æ’å…¥ %s"
-#: src/manp.c:747
+#: src/manp.c:764
#, c-format
msgid "warning: $MANPATH set, ignoring %s"
msgstr "警告:已設定 $MANPATH,正在忽略 %s"
-#: src/manp.c:809
+#: src/manp.c:826
#, c-format
msgid "can't parse directory list `%s'"
msgstr "無法解æžç›®éŒ„列表「%sã€"
-#: src/manp.c:872
+#: src/manp.c:881
#, c-format
msgid "can't open the manpath configuration file %s"
msgstr "無法開啟 manpath 設定檔 %s"
-#: src/manp.c:911
+#: src/manp.c:920
#, c-format
msgid "warning: mandatory directory %s doesn't exist"
msgstr "警告:強制性目錄 %s ä¸å­˜åœ¨"
-#: src/manp.c:1180
+#: src/manp.c:1176
#, c-format
msgid "can't determine current directory"
msgstr "無法確定目å‰çš„目錄"
-#: src/manp.c:1383
+#: src/manp.c:1385
#, c-format
msgid "warning: %s does not begin with %s"
msgstr "警告:%s 未以 %s 開頭"
-#: src/manpath.c:64
+#: src/manpath.c:65
msgid "show relative catpaths"
msgstr "顯示相å°çš„ catpath"
-#: src/manpath.c:65
+#: src/manpath.c:66
msgid "show the entire global manpath"
msgstr "顯示整個全域 manpath"
-#: src/manpath.c:127
+#: src/manpath.c:128
#, c-format
msgid "warning: no global manpaths set in config file %s"
msgstr "警告:沒有在設定檔 %s 設定全域 manpath"
-#: src/straycats.c:252 src/ult_src.c:124
+#: src/straycats.c:246 src/ult_src.c:125
#, c-format
msgid "warning: %s is a dangling symlink"
msgstr "警告:%s 為懸掛的符號連çµ"
-#: src/straycats.c:255 src/ult_src.c:127 src/ult_src.c:286
+#: src/straycats.c:249 src/ult_src.c:128 src/ult_src.c:262
#, c-format
msgid "can't resolve %s"
msgstr "ç„¡æ³•è§£æž %s"
-#: src/straycats.c:319
+#: src/straycats.c:308
#, c-format
msgid "Checking for stray cats under %s...\n"
msgstr "正在 %s 底下檢查 stray cats ...\n"
-#: src/straycats.c:359
+#: src/straycats.c:348
#, c-format
msgid "warning: can't update index cache %s"
msgstr "è­¦å‘Šï¼šç„¡æ³•æ›´æ–°ç´¢å¼•å¿«å– %s"
-#: src/ult_src.c:324
+#: src/ult_src.c:300
#, c-format
msgid "%s is self referencing"
msgstr "%s 為自我åƒè€ƒ"
-#: src/whatis.c:120
+#: src/whatis.c:123
msgid "KEYWORD..."
msgstr "é—œéµå­—…"
-#: src/whatis.c:121
+#: src/whatis.c:124
msgid "The --regex option is enabled by default."
msgstr "é è¨­å€¼å•Ÿç”¨äº† --regex é¸é …"
-#: src/whatis.c:125
+#: src/whatis.c:128
msgid "print verbose warning messages"
msgstr "顯示詳細的警告訊æ¯"
-#: src/whatis.c:126
+#: src/whatis.c:129
msgid "interpret each keyword as a regex"
msgstr "å°‡æ¯å€‹é—œéµå­—解釋為正è¦è¡¨é”å¼"
-#: src/whatis.c:127
+#: src/whatis.c:130
msgid "search each keyword for exact match"
msgstr "精確æœå°‹æ¯å€‹é—œéµå­—"
-#: src/whatis.c:128
+#: src/whatis.c:131
msgid "the keyword(s) contain wildcards"
msgstr "此關éµå­—åŒ…å« Wildcard"
-#: src/whatis.c:129
+#: src/whatis.c:132
msgid "require all keywords to match"
msgstr "需è¦ç¬¦åˆæ‰€æœ‰é—œéµå­—"
-#: src/whatis.c:130
+#: src/whatis.c:133
msgid "do not trim output to terminal width"
msgstr "ä¸ä¾çµ‚端器寬度è£åˆ‡è¼¸å‡º"
-#: src/whatis.c:131
+#: src/whatis.c:134
msgid "search only these sections (colon-separated)"
msgstr "åªæœå°‹é€™äº›éƒ¨ä»½ï¼ˆä»¥å†’號分隔)"
-#: src/whatis.c:135
+#: src/whatis.c:138
msgid "define the locale for this search"
msgstr "為這個æœå°‹å®šç¾©èªžè¨€"
-#: src/whatis.c:232
+#: src/whatis.c:235
#, c-format
msgid "%s what?\n"
msgstr "%s 什麼?\n"
-#: src/whatis.c:409 src/whatis.c:427
+#: src/whatis.c:412 src/whatis.c:430
#, c-format
msgid "warning: %s contains a pointer loop"
msgstr "警告:%s 包å«äº†éžè¿´æŒ‡æ¨™"
-#: src/whatis.c:421 src/whatis.c:429
+#: src/whatis.c:424 src/whatis.c:432
msgid "(unknown subject)"
msgstr "(未知主旨)"
-#: src/whatis.c:890
+#: src/whatis.c:863
#, c-format
msgid "%s: nothing appropriate.\n"
msgstr "%s:什麼都ä¸é©åˆã€‚\n"
-#: src/zsoelim.l:168
+#: src/zsoelim.l:171
#, c-format
msgid "%s:%d: .so requests nested too deeply or are recursive"
msgstr "%s:%d:.so 請求巢狀éŽæ·±æˆ–éžè¿´"
-#: src/zsoelim.l:183
+#: src/zsoelim.l:186
#, c-format
msgid "%s:%d: warning: failed .so request"
msgstr "%s:%d:警告:失敗的 .so 請求"
-#: src/zsoelim.l:205
+#: src/zsoelim.l:208
#, c-format
msgid "%s:%d: warning: newline in .so request, ignoring"
msgstr "%s:%d:警告:æ›è¡Œç¬¦è™Ÿåœ¨ .so 請求中,正在忽略"
-#: src/zsoelim.l:265
+#: src/zsoelim.l:268
#, c-format
msgid "%s:%d: warning: malformed .lf request, ignoring"
msgstr "%s:%d:警告:.If 請求格å¼éŒ¯èª¤ï¼Œæ­£åœ¨å¿½ç•¥"
-#: src/zsoelim.l:275
+#: src/zsoelim.l:278
#, c-format
msgid "%s:%d: warning: newline in .lf request, ignoring"
msgstr "%s:%d:警告:æ›è¡Œç¬¦è™Ÿåœ¨ .If 請求中,正在忽略"
-#: src/zsoelim.l:316
+#: src/zsoelim.l:318
#, c-format
msgid "%s:%d: unterminated quote in roff request"
msgstr "%s:%d:roff 請求中未終止的引用"
-#: src/zsoelim_main.c:68
+#: src/zsoelim_main.c:70
msgid "compatibility switch (ignored)"
msgstr "相容性開關(已忽略)"
+#~ msgid "manpath list too long"
+#~ msgstr "manpath 列表太長"
+
#~ msgid "can't restore previous working directory"
#~ msgstr "無法æ¢å¾©å…ˆå‰çš„工作目錄"
diff --git a/src/Makefile.in b/src/Makefile.in
index c2f4385a..413cae19 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -103,6 +103,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -125,7 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -169,7 +170,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/src/accessdb.c b/src/accessdb.c
index 21f18cb8..ff3fef5e 100644
--- a/src/accessdb.c
+++ b/src/accessdb.c
@@ -27,6 +27,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
@@ -70,7 +71,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'h':
argp_state_help (state, state->out_stream,
diff --git a/src/catman.c b/src/catman.c
index 489b33ca..c58ef6c0 100644
--- a/src/catman.c
+++ b/src/catman.c
@@ -31,6 +31,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <assert.h>
#include <sys/types.h>
@@ -61,6 +62,7 @@
#endif /* !ARG_MAX */
#include "argp.h"
+#include "gl_list.h"
#include "progname.h"
#include "gettext.h"
@@ -72,6 +74,7 @@
#include "cleanup.h"
#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "sandbox.h"
@@ -110,7 +113,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'M':
manp = arg;
@@ -164,7 +167,7 @@ static struct argp argp = { options, parse_opt, args_doc };
static char *locale;
-static char *manpathlist[MAXDIRS];
+static gl_list_t manpathlist;
static void post_fork (void)
{
@@ -353,7 +356,7 @@ static int check_access (const char *directory)
int main (int argc, char *argv[])
{
char *sys_manp;
- char **mp;
+ char *mp;
const char **sp;
set_program_name (argv[0]);
@@ -388,14 +391,14 @@ int main (int argc, char *argv[])
debug ("manpath=%s\n", manp);
- /* get the manpath as an array of pointers */
- create_pathlist (manp, manpathlist);
-
- for (mp = manpathlist; *mp; mp++) {
+ /* get the manpath as a list of pointers */
+ manpathlist = create_pathlist (manp);
+
+ GL_LIST_FOREACH_START (manpathlist, mp) {
char *catpath;
size_t len;
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (mp, SYSTEM_CAT | USER_CAT);
if (catpath) {
if (is_directory (catpath) != 1) {
@@ -404,10 +407,10 @@ int main (int argc, char *argv[])
}
database = mkdbname (catpath);
} else {
- if (is_directory (*mp) != 1)
+ if (is_directory (mp) != 1)
continue;
- database = mkdbname (*mp);
- catpath = xstrdup (*mp);
+ database = mkdbname (mp);
+ catpath = xstrdup (mp);
}
len = strlen (catpath);
@@ -419,14 +422,14 @@ int main (int argc, char *argv[])
continue;
if (check_access (catpath))
continue;
- if (parse_for_sec (*mp, *sp)) {
- error (0, 0, _("unable to update %s"), *mp);
+ if (parse_for_sec (mp, *sp)) {
+ error (0, 0, _("unable to update %s"), mp);
break;
}
}
free (catpath);
- }
+ } GL_LIST_FOREACH_END (manpathlist);
free_pathlist (manpathlist);
free (locale);
diff --git a/src/check_mandirs.c b/src/check_mandirs.c
index c8c33dce..5aba37cb 100644
--- a/src/check_mandirs.c
+++ b/src/check_mandirs.c
@@ -31,6 +31,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -43,6 +44,10 @@
#include <unistd.h>
#include "dirname.h"
+#include "gl_array_list.h"
+#include "gl_hash_map.h"
+#include "gl_xlist.h"
+#include "gl_xmap.h"
#include "stat-time.h"
#include "timespec.h"
#include "xvasprintf.h"
@@ -53,10 +58,9 @@
#include "manconfig.h"
#include "error.h"
-#include "hashtable.h"
+#include "glcontainers.h"
#include "orderfiles.h"
#include "security.h"
-#include "xchown.h"
#include "mydbm.h"
#include "db_storage.h"
@@ -68,24 +72,24 @@
#include "ult_src.h"
#include "check_mandirs.h"
-int opt_test; /* don't update db */
+bool opt_test; /* don't update db */
int pages;
-int force_rescan = 0;
+bool force_rescan = false;
-static struct hashtable *whatis_hash = NULL;
+gl_map_t whatis_map = NULL;
-struct whatis_hashent {
+struct whatis {
char *whatis;
- struct ult_trace trace;
+ gl_list_t trace;
};
-static void whatis_hashtable_free (void *defn)
+static void whatis_free (const void *value)
{
- struct whatis_hashent *hashent = defn;
+ struct whatis *whatis = (struct whatis *) value;
- free (hashent->whatis);
- free_ult_trace (&hashent->trace);
- free (hashent);
+ free (whatis->whatis);
+ gl_list_free (whatis->trace);
+ free (whatis);
}
static void gripe_multi_extensions (const char *path, const char *sec,
@@ -127,12 +131,11 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
struct mandata info, *exists;
struct stat buf;
size_t len;
- struct ult_trace ult_trace;
- struct whatis_hashent *whatis;
+ gl_list_t ult_trace = NULL;
+ const struct whatis *whatis;
memset (&lg, 0, sizeof (struct lexgrog));
memset (&info, 0, sizeof (struct mandata));
- memset (&ult_trace, 0, sizeof (struct ult_trace));
manpage = filename_info (file, &info, NULL);
if (!manpage)
@@ -158,7 +161,7 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
* save both an ult_src() and a find_name(), amongst other wastes of
* time.
*/
- exists = dblookup_exact (dbf, manpage_base, info.ext, 1);
+ exists = dblookup_exact (dbf, manpage_base, info.ext, true);
/* Ensure we really have the actual page. Gzip keeps the mtime the
* same when it compresses, so we have to compare compression
@@ -202,8 +205,8 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
*/
{
/* Avoid too much noise in debug output */
- int save_debug = debug_level;
- debug_level = 0;
+ bool save_debug = debug_level;
+ debug_level = false;
ult = ult_src (file, path, &buf, SOFT_LINK | HARD_LINK, NULL);
debug_level = save_debug;
}
@@ -215,10 +218,10 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
return;
}
- if (!whatis_hash)
- whatis_hash = hashtable_create (&whatis_hashtable_free);
+ if (!whatis_map)
+ whatis_map = new_string_map (GL_HASH_MAP, whatis_free);
- whatis = hashtable_lookup (whatis_hash, ult, strlen (ult));
+ whatis = gl_map_get (whatis_map, ult);
if (!whatis) {
if (!STRNEQ (ult, file, len))
debug ("\ntest_manfile(): link not in cache:\n"
@@ -228,8 +231,9 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
* looking for whatis info in files containing only '.so
* manx/foo.x', which will give us an unobtainable whatis
* for the entry. */
+ ult_trace = new_string_list (GL_ARRAY_LIST, true);
ult = ult_src (file, path, &buf,
- SO_LINK | SOFT_LINK | HARD_LINK, &ult_trace);
+ SO_LINK | SOFT_LINK | HARD_LINK, ult_trace);
}
if (!ult) {
@@ -261,6 +265,7 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
else {
/* Cache miss; go and get the whatis info in its raw state. */
char *file_base = base_name (file);
+ struct whatis *new_whatis;
lg.type = MANPAGE;
drop_effective_privs ();
@@ -268,11 +273,12 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
free (file_base);
regain_effective_privs ();
- whatis = XMALLOC (struct whatis_hashent);
- whatis->whatis = lg.whatis ? xstrdup (lg.whatis) : NULL;
+ new_whatis = XMALLOC (struct whatis);
+ new_whatis->whatis = lg.whatis ? xstrdup (lg.whatis) : NULL;
/* We filled out ult_trace above. */
- memcpy (&whatis->trace, &ult_trace, sizeof (ult_trace));
- hashtable_install (whatis_hash, ult, strlen (ult), whatis);
+ new_whatis->trace = ult_trace;
+ gl_map_put (whatis_map, xstrdup (ult), new_whatis);
+ whatis = new_whatis;
}
debug ("\"%s\"\n", lg.whatis);
@@ -281,15 +287,11 @@ void test_manfile (MYDBM_FILE dbf, const char *file, const char *path)
info.pointer = NULL; /* direct page, so far */
info.filter = lg.filters;
if (lg.whatis) {
- struct page_description *descs =
- parse_descriptions (manpage_base, lg.whatis);
- if (descs) {
- if (!opt_test)
- store_descriptions (dbf, descs, &info,
- path, manpage_base,
- &whatis->trace);
- free_descriptions (descs);
- }
+ gl_list_t descs = parse_descriptions (manpage_base, lg.whatis);
+ if (!opt_test)
+ store_descriptions (dbf, descs, &info, path,
+ manpage_base, whatis->trace);
+ gl_list_free (descs);
} else if (quiet < 2) {
(void) stat (ult, &buf);
if (buf.st_size == 0)
@@ -311,8 +313,8 @@ static void add_dir_entries (MYDBM_FILE dbf, const char *path, char *infile)
int len;
struct dirent *newdir;
DIR *dir;
- char **names;
- size_t names_len, names_max, i;
+ gl_list_t names;
+ const char *name;
manpage = xasprintf ("%s/%s/", path, infile);
len = strlen (manpage);
@@ -329,9 +331,7 @@ static void add_dir_entries (MYDBM_FILE dbf, const char *path, char *infile)
return;
}
- names_len = 0;
- names_max = 1024;
- names = XNMALLOC (names_max, char *);
+ names = new_string_list (GL_ARRAY_LIST, false);
/* strlen(newdir->d_name) could be replaced by newdir->d_reclen */
@@ -339,24 +339,19 @@ static void add_dir_entries (MYDBM_FILE dbf, const char *path, char *infile)
if (*newdir->d_name == '.' &&
strlen (newdir->d_name) < (size_t) 3)
continue;
- if (names_len >= names_max) {
- names_max *= 2;
- names = xnrealloc (names, names_max, sizeof (char *));
- }
- names[names_len++] = xstrdup (newdir->d_name);
+ gl_list_add_last (names, xstrdup (newdir->d_name));
}
closedir (dir);
- order_files (infile, names, names_len);
+ order_files (infile, &names);
- for (i = 0; i < names_len; ++i) {
- manpage = appendstr (manpage, names[i], (void *) 0);
+ GL_LIST_FOREACH_START (names, name) {
+ manpage = appendstr (manpage, name, (void *) 0);
test_manfile (dbf, manpage, path);
*(manpage + len) = '\0';
- free (names[i]);
- }
+ } GL_LIST_FOREACH_END (names);
- free (names);
+ gl_list_free (names);
free (manpage);
}
@@ -379,11 +374,8 @@ void chown_if_possible (const char *path)
(st.st_uid != man_owner->pw_uid ||
st.st_gid != man_owner->pw_gid)) {
debug ("fixing ownership of %s\n", path);
-#ifdef HAVE_LCHOWN
- xlchown (path, man_owner->pw_uid, man_owner->pw_gid);
-#else
- xchown (path, man_owner->pw_uid, man_owner->pw_gid);
-#endif
+ if (lchown (path, man_owner->pw_uid, man_owner->pw_gid) < 0)
+ error (FATAL, 0, _("can't chown %s"), path);
}
}
#else /* !MAN_OWNER */
@@ -652,12 +644,12 @@ int create_db (const char *manpath, const char *catpath)
}
/* Make sure an existing database is essentially sane. */
-static int sanity_check_db (MYDBM_FILE dbf)
+static bool sanity_check_db (MYDBM_FILE dbf)
{
datum key;
if (dbver_rd (dbf))
- return 0;
+ return false;
key = MYDBM_FIRSTKEY (dbf);
while (MYDBM_DPTR (key) != NULL) {
@@ -668,7 +660,7 @@ static int sanity_check_db (MYDBM_FILE dbf)
debug ("warning: %s has a key with no content (%s); "
"rebuilding\n", database, MYDBM_DPTR (key));
MYDBM_FREE_DPTR (key);
- return 0;
+ return false;
}
MYDBM_FREE_DPTR (content);
nextkey = MYDBM_NEXTKEY (dbf, key);
@@ -676,7 +668,7 @@ static int sanity_check_db (MYDBM_FILE dbf)
key = nextkey;
}
- return 1;
+ return true;
}
/* routine to update the db, ensure that it is consistent with the
@@ -771,38 +763,38 @@ pointers_next:
* out that this is better handled in look_for_file() itself.
*/
static int count_glob_matches (const char *name, const char *ext,
- char **source, struct timespec db_mtime)
+ gl_list_t source, struct timespec db_mtime)
{
- char **walk;
+ const char *walk;
int count = 0;
- for (walk = source; walk && *walk; ++walk) {
+ GL_LIST_FOREACH_START (source, walk) {
struct mandata info;
struct stat statbuf;
char *buf;
memset (&info, 0, sizeof (struct mandata));
- if (stat (*walk, &statbuf) == -1) {
+ if (stat (walk, &statbuf) == -1) {
debug ("count_glob_matches: excluding %s "
- "because stat failed\n", *walk);
+ "because stat failed\n", walk);
continue;
}
if (db_mtime.tv_sec != (time_t) -1 &&
timespec_cmp (get_stat_mtime (&statbuf), db_mtime) <= 0) {
debug ("count_glob_matches: excluding %s, "
- "no newer than database\n", *walk);
+ "no newer than database\n", walk);
continue;
}
- buf = filename_info (*walk, &info, name);
+ buf = filename_info (walk, &info, name);
if (buf) {
if (STREQ (ext, info.ext))
++count;
free (info.name);
free (buf);
}
- }
+ } GL_LIST_FOREACH_END (source);
return count;
}
@@ -811,7 +803,7 @@ static int count_glob_matches (const char *name, const char *ext,
* page.
*/
static int purge_normal (MYDBM_FILE dbf, const char *name,
- struct mandata *info, char **found)
+ struct mandata *info, gl_list_t found)
{
struct timespec t;
@@ -834,8 +826,8 @@ static int purge_normal (MYDBM_FILE dbf, const char *name,
/* Decide whether to purge a reference to a WHATIS_MAN or WHATIS_CAT page. */
static int purge_whatis (MYDBM_FILE dbf, const char *path, int cat,
- const char *name, struct mandata *info, char **found,
- struct timespec db_mtime)
+ const char *name, struct mandata *info,
+ gl_list_t found, struct timespec db_mtime)
{
/* TODO: On some systems, the cat page extension differs from the
* man page extension, so this may be too strict.
@@ -852,7 +844,7 @@ static int purge_whatis (MYDBM_FILE dbf, const char *path, int cat,
debug ("%s(%s): whatis replaced by real page; "
"forcing a rescan just in case\n",
name, info->ext);
- force_rescan = 1;
+ force_rescan = true;
return 0;
} else if (STREQ (info->pointer, "-")) {
/* This is broken; a WHATIS_MAN should never have an empty
@@ -870,23 +862,26 @@ static int purge_whatis (MYDBM_FILE dbf, const char *path, int cat,
debug ("%s(%s): whatis had empty pointer; "
"forcing a rescan just in case\n",
name, info->ext);
- force_rescan = 1;
+ force_rescan = true;
return 1;
} else {
/* Does the real page still exist? */
- char **real_found;
- int save_debug = debug_level;
+ gl_list_t real_found;
+ bool save_debug = debug_level;
struct timespec t;
+ int count;
- debug_level = 0;
+ debug_level = false;
real_found = look_for_file (path, info->ext,
info->pointer, cat, LFF_MATCHCASE);
debug_level = save_debug;
t.tv_sec = -1;
t.tv_nsec = -1;
- if (count_glob_matches (info->pointer, info->ext, real_found,
- t))
+ count = count_glob_matches (info->pointer, info->ext,
+ real_found, t);
+ gl_list_free (real_found);
+ if (count)
return 0;
if (!opt_test)
@@ -923,7 +918,7 @@ static int check_multi_key (const char *name, const char *content)
if (!valid) {
debug ("%s: broken multi key \"%s\", "
"forcing a rescan\n", name, content);
- force_rescan = 1;
+ force_rescan = true;
return 1;
}
@@ -985,8 +980,8 @@ int purge_missing (const char *manpath, const char *catpath,
datum content, nextkey;
struct mandata entry;
char *nicekey, *tab;
- int save_debug;
- char **found;
+ bool save_debug;
+ gl_list_t found;
/* Ignore db identifier keys. */
if (*MYDBM_DPTR (key) == '$') {
@@ -1025,7 +1020,7 @@ int purge_missing (const char *manpath, const char *catpath,
split_content (MYDBM_DPTR (content), &entry);
save_debug = debug_level;
- debug_level = 0; /* look_for_file() is quite noisy */
+ debug_level = false; /* look_for_file() is quite noisy */
if (entry.id <= WHATIS_MAN)
found = look_for_file (manpath, entry.ext,
entry.name ? entry.name
@@ -1051,6 +1046,7 @@ int purge_missing (const char *manpath, const char *catpath,
count += purge_whatis (dbf, catpath, 1, nicekey,
&entry, found, db_mtime);
+ gl_list_free (found);
free (nicekey);
free_mandata_elements (&entry);
diff --git a/src/descriptions.c b/src/descriptions.c
index 009a50ba..09295b8e 100644
--- a/src/descriptions.c
+++ b/src/descriptions.c
@@ -27,21 +27,36 @@
#include <string.h>
#include <stdlib.h>
+#include "gl_array_list.h"
+#include "gl_xlist.h"
+
#include "manconfig.h"
#include "descriptions.h"
+/* Free a page description. */
+void page_description_free (const void *value)
+{
+ struct page_description *desc = (struct page_description *) value;
+
+ free (desc->name);
+ free (desc->whatis);
+ free (desc);
+}
+
/* Parse the description in a whatis line returned by find_name() into a
- * sequence of names and whatis descriptions.
+ * list of names and whatis descriptions.
*/
-struct page_description *parse_descriptions (const char *base,
- const char *whatis)
+gl_list_t parse_descriptions (const char *base, const char *whatis)
{
const char *sep, *nextsep;
- struct page_description *desc = NULL, *head = NULL;
+ gl_list_t descs;
int seen_base = 0;
+ descs = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL,
+ page_description_free, true);
+
if (!whatis)
- return NULL;
+ return descs;
sep = whatis;
@@ -74,7 +89,7 @@ struct page_description *parse_descriptions (const char *base,
dash = strstr (record, " - ");
if (dash)
names = xstrndup (record, dash - record);
- else if (!desc)
+ else if (!gl_list_size (descs))
/* Some pages have a NAME section with just the page
* name and no whatis. We might as well include
* this.
@@ -93,6 +108,7 @@ struct page_description *parse_descriptions (const char *base,
for (token = strtok (names, ","); token;
token = strtok (NULL, ",")) {
char *name = trim_spaces (token);
+ struct page_description *desc;
/* Skip name tokens containing whitespace. They are
* almost never useful as manual page names.
@@ -103,16 +119,10 @@ struct page_description *parse_descriptions (const char *base,
}
/* Allocate new description node. */
- if (head) {
- desc->next = xmalloc (sizeof *desc);
- desc = desc->next;
- } else {
- desc = xmalloc (sizeof *desc);
- head = desc;
- }
+ desc = xmalloc (sizeof *desc);
desc->name = name; /* steal memory */
desc->whatis = dash ? trim_spaces (dash + 3) : NULL;
- desc->next = NULL;
+ gl_list_add_last (descs, desc);
if (base && STREQ (base, desc->name))
seen_base = 1;
@@ -129,33 +139,18 @@ next:
* list.
*/
if (base && !seen_base) {
- if (head) {
- desc->next = xmalloc (sizeof *desc);
- desc = desc->next;
- desc->whatis =
- head->whatis ? xstrdup (head->whatis) : NULL;
- } else {
- desc = xmalloc (sizeof *desc);
- head = desc;
- desc->whatis = NULL;
- }
+ struct page_description *desc = xmalloc (sizeof *desc);
+
desc->name = xstrdup (base);
- desc->next = NULL;
+ desc->whatis = NULL;
+ if (gl_list_size (descs)) {
+ const struct page_description *first =
+ gl_list_get_at (descs, 0);
+ if (first->whatis)
+ desc->whatis = xstrdup (first->whatis);
+ }
+ gl_list_add_last (descs, desc);
}
- return head;
-}
-
-/* Free a description list and all its contents. */
-void free_descriptions (struct page_description *head)
-{
- struct page_description *desc = head, *prev;
-
- while (desc) {
- free (desc->name);
- free (desc->whatis);
- prev = desc;
- desc = desc->next;
- free (prev);
- }
+ return descs;
}
diff --git a/src/descriptions.h b/src/descriptions.h
index a0161be8..38ae412a 100644
--- a/src/descriptions.h
+++ b/src/descriptions.h
@@ -20,21 +20,18 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "gl_list.h"
+
#include "db_storage.h"
struct page_description {
char *name;
char *whatis;
- struct page_description *next;
};
-struct ult_trace;
-
-extern struct page_description *parse_descriptions (const char *base,
- const char *whatis);
-extern void store_descriptions (MYDBM_FILE dbf,
- const struct page_description *head,
+/* Returns a list of struct page_description. */
+extern gl_list_t parse_descriptions (const char *base, const char *whatis);
+extern void store_descriptions (MYDBM_FILE dbf, gl_list_t descs,
struct mandata *info,
const char *path, const char *base,
- struct ult_trace *trace);
-extern void free_descriptions (struct page_description *head);
+ gl_list_t trace);
diff --git a/src/descriptions_store.c b/src/descriptions_store.c
index c473aee5..47d0b912 100644
--- a/src/descriptions_store.c
+++ b/src/descriptions_store.c
@@ -24,6 +24,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -31,9 +32,12 @@
#include "gettext.h"
#define _(String) gettext (String)
+#include "error.h"
+#include "gl_list.h"
+
#include "manconfig.h"
-#include "error.h"
+#include "glcontainers.h"
#include "db_storage.h"
@@ -60,39 +64,38 @@ static int is_prefix (const char *path, const char *dir)
/* Take a list of descriptions returned by parse_descriptions() and store
* it into the database.
*/
-void store_descriptions (MYDBM_FILE dbf, const struct page_description *head,
- struct mandata *info,
- const char *path, const char *base,
- struct ult_trace *trace)
+void store_descriptions (MYDBM_FILE dbf, gl_list_t descs, struct mandata *info,
+ const char *path, const char *base, gl_list_t trace)
{
const struct page_description *desc;
char save_id = info->id;
- size_t i;
+ const char *trace_name;
- if (trace) {
- for (i = 0; i < trace->len; ++i)
- debug ("trace->names[%zu] = '%s'\n",
- i, trace->names[i]);
+ if (gl_list_size (descs) && trace) {
+ GL_LIST_FOREACH_START (trace, trace_name)
+ debug ("trace: '%s'\n", trace_name);
+ GL_LIST_FOREACH_END (trace);
}
- for (desc = head; desc; desc = desc->next) {
+ GL_LIST_FOREACH_START (descs, desc) {
/* Either it's the real thing or merely a reference. Get the
* id and pointer right in either case.
*/
- int found_real_page = 0;
- int found_external = 0;
+ bool found_real_page = false;
+ bool found_external = false;
if (STREQ (base, desc->name)) {
info->id = save_id;
info->pointer = NULL;
info->whatis = desc->whatis;
- found_real_page = 1;
+ found_real_page = true;
} else if (trace) {
- for (i = 0; i < trace->len; ++i) {
+ size_t i = 0;
+ GL_LIST_FOREACH_START (trace, trace_name) {
struct mandata trace_info;
char *buf;
- buf = filename_info (trace->names[i],
+ buf = filename_info (trace_name,
&trace_info, "");
if (trace_info.name &&
STREQ (trace_info.name, desc->name)) {
@@ -101,24 +104,25 @@ void store_descriptions (MYDBM_FILE dbf, const struct page_description *head,
* hierarchy; skip this
* description.
*/
- found_external = 1;
+ found_external = true;
free (trace_info.name);
free (buf);
break;
}
- if (i == trace->len - 1 &&
+ if (i == gl_list_size (trace) - 1 &&
save_id == SO_MAN)
info->id = ULT_MAN;
else
info->id = save_id;
info->pointer = NULL;
info->whatis = desc->whatis;
- found_real_page = 1;
+ found_real_page = true;
}
free (trace_info.name);
free (buf);
- }
+ ++i;
+ } GL_LIST_FOREACH_END (trace);
}
if (found_external) {
@@ -144,5 +148,5 @@ void store_descriptions (MYDBM_FILE dbf, const struct page_description *head,
gripe_bad_store (base, info->ext);
break;
}
- }
+ } GL_LIST_FOREACH_END (descs);
}
diff --git a/src/globbing.c b/src/globbing.c
index 2fc8e24a..017c3611 100644
--- a/src/globbing.c
+++ b/src/globbing.c
@@ -27,6 +27,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
@@ -35,13 +36,17 @@
#include <dirent.h>
#include "fnmatch.h"
+#include "gl_array_list.h"
+#include "gl_hash_map.h"
+#include "gl_xlist.h"
+#include "gl_xmap.h"
#include "regex.h"
#include "xvasprintf.h"
#include "manconfig.h"
#include "error.h"
-#include "hashtable.h"
+#include "glcontainers.h"
#include "cleanup.h"
#include "xregcomp.h"
@@ -109,23 +114,23 @@ static int parse_layout (const char *layout)
}
}
-struct dirent_hashent {
+struct dirent_names {
char **names;
size_t names_len, names_max;
};
-static void dirent_hashtable_free (void *defn)
+static void dirent_names_free (const void *value)
{
- struct dirent_hashent *hashent = defn;
+ struct dirent_names *cache = (struct dirent_names *) value;
size_t i;
- for (i = 0; i < hashent->names_len; ++i)
- free (hashent->names[i]);
- free (hashent->names);
- free (hashent);
+ for (i = 0; i < cache->names_len; ++i)
+ free (cache->names[i]);
+ free (cache->names);
+ free (cache);
}
-static struct hashtable *dirent_hash = NULL;
+static gl_map_t dirent_map = NULL;
static int cache_compare (const void *a, const void *b)
{
@@ -134,17 +139,17 @@ static int cache_compare (const void *a, const void *b)
return strcasecmp (left, right);
}
-static struct dirent_hashent *update_directory_cache (const char *path)
+static struct dirent_names *update_directory_cache (const char *path)
{
- struct dirent_hashent *cache;
+ struct dirent_names *cache;
DIR *dir;
struct dirent *entry;
- if (!dirent_hash) {
- dirent_hash = hashtable_create (&dirent_hashtable_free);
- push_cleanup ((cleanup_fun) hashtable_free, dirent_hash, 0);
+ if (!dirent_map) {
+ dirent_map = new_string_map (GL_HASH_MAP, dirent_names_free);
+ push_cleanup ((cleanup_fun) gl_map_free, dirent_map, 0);
}
- cache = hashtable_lookup (dirent_hash, path, strlen (path));
+ cache = (struct dirent_names *) gl_map_get (dirent_map, path);
/* Check whether we've got this one already. */
if (cache) {
@@ -160,7 +165,7 @@ static struct dirent_hashent *update_directory_cache (const char *path)
return NULL;
}
- cache = XMALLOC (struct dirent_hashent);
+ cache = XMALLOC (struct dirent_names);
cache->names_len = 0;
cache->names_max = 1024;
cache->names = XNMALLOC (cache->names_max, char *);
@@ -179,7 +184,7 @@ static struct dirent_hashent *update_directory_cache (const char *path)
qsort (cache->names, cache->names_len, sizeof *cache->names,
&cache_compare);
- hashtable_install (dirent_hash, path, strlen (path), cache);
+ gl_map_put (dirent_map, xstrdup (path), cache);
closedir (dir);
return cache;
@@ -197,34 +202,16 @@ static int pattern_compare (const void *a, const void *b)
return strncasecmp (key->pattern, memb, key->len);
}
-static void clear_glob (glob_t *pglob)
+static void match_in_directory (const char *path, const char *pattern,
+ int opts, gl_list_t matched)
{
- /* look_for_file declares this static, so it's zero-initialised.
- * globfree() can deal with checking it before freeing.
- */
- globfree (pglob);
-
- pglob->gl_pathc = 0;
- pglob->gl_pathv = NULL;
- pglob->gl_offs = 0;
-}
-
-static void match_in_directory (const char *path, const char *pattern, int opts,
- glob_t *pglob, size_t *allocated)
-{
- struct dirent_hashent *cache;
- size_t my_allocated = 0;
+ struct dirent_names *cache;
int flags;
regex_t preg;
struct pattern_bsearch pattern_start = { NULL, -1 };
char **bsearched;
size_t i;
- if (!allocated)
- allocated = &my_allocated;
- if (!*allocated)
- clear_glob (pglob);
-
cache = update_directory_cache (path);
if (!cache) {
debug ("directory cache update failed\n");
@@ -233,12 +220,6 @@ static void match_in_directory (const char *path, const char *pattern, int opts,
debug ("globbing pattern in %s: %s\n", path, pattern);
- if (!*allocated) {
- *allocated = 4;
- pglob->gl_pathv = XNMALLOC (*allocated, char *);
- pglob->gl_pathv[0] = NULL;
- }
-
if (opts & LFF_REGEX)
flags = REG_EXTENDED | REG_NOSUB |
((opts & LFF_MATCHCASE) ? 0 : REG_ICASE);
@@ -280,46 +261,25 @@ static void match_in_directory (const char *path, const char *pattern, int opts,
debug ("matched: %s/%s\n", path, cache->names[i]);
- if (pglob->gl_pathc >= *allocated) {
- *allocated *= 2;
- pglob->gl_pathv = xnrealloc (
- pglob->gl_pathv, *allocated, sizeof (char *));
- }
- pglob->gl_pathv[pglob->gl_pathc++] =
- xasprintf ("%s/%s", path, cache->names[i]);
+ gl_list_add_last (matched,
+ xasprintf ("%s/%s", path, cache->names[i]));
}
if (opts & LFF_REGEX)
regfree (&preg);
else
free (pattern_start.pattern);
-
- if (pglob->gl_pathc >= *allocated) {
- *allocated *= 2;
- pglob->gl_pathv = xnrealloc (pglob->gl_pathv,
- *allocated, sizeof (char *));
- }
- pglob->gl_pathv[pglob->gl_pathc] = NULL;
-
- return;
}
-char **look_for_file (const char *hier, const char *sec,
- const char *unesc_name, int cat, int opts)
+gl_list_t look_for_file (const char *hier, const char *sec,
+ const char *unesc_name, int cat, int opts)
{
+ gl_list_t matched;
char *pattern, *path = NULL;
- static glob_t gbuf;
- static int cleanup_installed = 0;
static int layout = -1;
char *name;
- if (!cleanup_installed) {
- /* appease valgrind */
- push_cleanup ((cleanup_fun) globfree, &gbuf, 0);
- cleanup_installed = 1;
- }
-
- clear_glob (&gbuf);
+ matched = new_string_list (GL_ARRAY_LIST, false);
/* This routine only does a minimum amount of matching. It does not
find cat files in the alternate cat directory. */
@@ -337,41 +297,39 @@ char **look_for_file (const char *hier, const char *sec,
/* allow lookups like "3x foo" to match "../man3/foo.3x" */
if (layout & LAYOUT_GNU) {
- glob_t dirs;
- size_t i;
- size_t allocated = 0;
+ gl_list_t dirs;
+ const char *dir;
- memset (&dirs, 0, sizeof (dirs));
+ dirs = new_string_list (GL_ARRAY_LIST, false);
pattern = xasprintf ("%s\t*", cat ? "cat" : "man");
*strrchr (pattern, '\t') = *sec;
- match_in_directory (hier, pattern, LFF_MATCHCASE, &dirs, NULL);
+ match_in_directory (hier, pattern, LFF_MATCHCASE, dirs);
free (pattern);
pattern = make_pattern (name, sec, opts);
- for (i = 0; i < dirs.gl_pathc; ++i) {
+ GL_LIST_FOREACH_START (dirs, dir) {
if (path)
*path = '\0';
- match_in_directory (dirs.gl_pathv[i], pattern, opts,
- &gbuf, &allocated);
- }
+ match_in_directory (dir, pattern, opts, matched);
+ } GL_LIST_FOREACH_END (dirs);
free (pattern);
- globfree (&dirs);
+ gl_list_free (dirs);
}
/* Try HPUX style compressed man pages */
- if ((layout & LAYOUT_HPUX) && gbuf.gl_pathc == 0) {
+ if ((layout & LAYOUT_HPUX) && gl_list_size (matched) == 0) {
if (path)
*path = '\0';
path = appendstr (path, hier, cat ? "/cat" : "/man",
sec, ".Z", (void *) 0);
pattern = make_pattern (name, sec, opts);
- match_in_directory (path, pattern, opts, &gbuf, NULL);
+ match_in_directory (path, pattern, opts, matched);
free (pattern);
}
/* Try man pages without the section extension --- IRIX man pages */
- if ((layout & LAYOUT_IRIX) && gbuf.gl_pathc == 0) {
+ if ((layout & LAYOUT_IRIX) && gl_list_size (matched) == 0) {
if (path)
*path = '\0';
path = appendstr (path, hier, cat ? "/cat" : "/man", sec,
@@ -381,12 +339,12 @@ char **look_for_file (const char *hier, const char *sec,
else
pattern = xasprintf ("%s.*", name);
- match_in_directory (path, pattern, opts, &gbuf, NULL);
+ match_in_directory (path, pattern, opts, matched);
free (pattern);
}
/* Try Solaris style man page directories */
- if ((layout & LAYOUT_SOLARIS) && gbuf.gl_pathc == 0) {
+ if ((layout & LAYOUT_SOLARIS) && gl_list_size (matched) == 0) {
if (path)
*path = '\0';
/* TODO: This needs to be man/sec*, not just man/sec. */
@@ -394,12 +352,12 @@ char **look_for_file (const char *hier, const char *sec,
(void *) 0);
pattern = make_pattern (name, sec, opts);
- match_in_directory (path, pattern, opts, &gbuf, NULL);
+ match_in_directory (path, pattern, opts, matched);
free (pattern);
}
/* BSD cat pages take the extension .0 */
- if ((layout & LAYOUT_BSD) && gbuf.gl_pathc == 0) {
+ if ((layout & LAYOUT_BSD) && gl_list_size (matched) == 0) {
if (path)
*path = '\0';
if (cat) {
@@ -412,40 +370,34 @@ char **look_for_file (const char *hier, const char *sec,
path = appendstr (path, hier, "/man", sec, (void *) 0);
pattern = make_pattern (name, sec, opts);
}
- match_in_directory (path, pattern, opts, &gbuf, NULL);
+ match_in_directory (path, pattern, opts, matched);
free (pattern);
}
free (name);
free (path);
- if (gbuf.gl_pathc == 0)
- return NULL;
- else
- return gbuf.gl_pathv;
+ return matched;
}
-char **expand_path (const char *path)
+gl_list_t expand_path (const char *path)
{
int res = 0;
- char **result = NULL;
+ gl_list_t result;
glob_t globbuf;
- size_t i;
+
+ result = new_string_list (GL_ARRAY_LIST, false);
res = glob (path, GLOB_NOCHECK, NULL, &globbuf);
/* if glob failed, return the given path */
- if (res != 0) {
- result = XNMALLOC (2, char *);
- result[0] = xstrdup (path);
- result[1] = NULL;
- return result;
- }
-
- result = XNMALLOC (globbuf.gl_pathc + 1, char *);
- for (i = 0; i < globbuf.gl_pathc; i++) {
- result[i] = xstrdup (globbuf.gl_pathv[i]);
+ if (res != 0)
+ gl_list_add_last (result, xstrdup (path));
+ else {
+ size_t i;
+ for (i = 0; i < globbuf.gl_pathc; ++i)
+ gl_list_add_last (result,
+ xstrdup (globbuf.gl_pathv[i]));
}
- result[globbuf.gl_pathc] = NULL;
globfree (&globbuf);
diff --git a/src/globbing.h b/src/globbing.h
index 1c811418..ea9ff001 100644
--- a/src/globbing.h
+++ b/src/globbing.h
@@ -20,6 +20,8 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "gl_list.h"
+
enum look_for_file_opts {
LFF_MATCHCASE = 1,
LFF_REGEX = 2,
@@ -27,8 +29,8 @@ enum look_for_file_opts {
};
/* globbing.c */
-extern char **look_for_file (const char *hier, const char *sec,
- const char *unesc_name, int cat, int opts);
+extern gl_list_t look_for_file (const char *hier, const char *sec,
+ const char *unesc_name, int cat, int opts);
/* Expand path with wildcards into list of all existing directories. */
-extern char **expand_path (const char *path);
+extern gl_list_t expand_path (const char *path);
diff --git a/src/globbing_test.c b/src/globbing_test.c
index eb4070a1..5f0878fa 100644
--- a/src/globbing_test.c
+++ b/src/globbing_test.c
@@ -25,10 +25,12 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include "argp.h"
+#include "gl_list.h"
#include "progname.h"
#include "gettext.h"
@@ -38,15 +40,16 @@
#include "manconfig.h"
#include "error.h"
+#include "glcontainers.h"
#include "globbing.h"
#include "sandbox.h"
man_sandbox *sandbox; /* unused, but needed by libman */
extern const char *extension;
-static int match_case = 0;
-static int regex_opt = 0;
-static int wildcard = 0;
+static bool match_case = false;
+static bool regex_opt = false;
+static bool wildcard = false;
static char **remaining_args;
const char *argp_program_version = "globbing " PACKAGE_VERSION;
@@ -70,22 +73,22 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'e':
extension = arg;
return 0;
case 'i':
- match_case = 0;
+ match_case = false;
return 0;
case 'I':
- match_case = 1;
+ match_case = true;
return 0;
case 'r':
- regex_opt = 1;
+ regex_opt = true;
return 0;
case 'w':
- wildcard = 1;
+ wildcard = true;
return 0;
case 'h':
argp_state_help (state, state->out_stream,
@@ -115,16 +118,18 @@ int main (int argc, char **argv)
exit (FAIL);
for (i = 0; i <= 1; i++) {
- char **files;
+ gl_list_t files;
+ const char *file;
files = look_for_file (remaining_args[0], remaining_args[1],
remaining_args[2], i,
(match_case ? LFF_MATCHCASE : 0) |
(regex_opt ? LFF_REGEX : 0) |
(wildcard ? LFF_WILDCARD : 0));
- if (files)
- while (*files)
- printf ("%s\n", *files++);
+ GL_LIST_FOREACH_START (files, file)
+ printf ("%s\n", file);
+ GL_LIST_FOREACH_END (files);
+ gl_list_free (files);
}
return 0;
}
diff --git a/src/lexgrog_test.c b/src/lexgrog_test.c
index c310aa0c..4fb39fd1 100644
--- a/src/lexgrog_test.c
+++ b/src/lexgrog_test.c
@@ -26,6 +26,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -33,6 +34,8 @@
#include <sys/stat.h>
#include "argp.h"
+#include "error.h"
+#include "gl_list.h"
#include "progname.h"
#include "gettext.h"
@@ -42,7 +45,7 @@
#include "manconfig.h"
#include "cleanup.h"
-#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "sandbox.h"
#include "security.h"
@@ -53,7 +56,8 @@
int quiet = 1;
man_sandbox *sandbox;
-static int parse_man = 0, parse_cat = 0, show_whatis = 0, show_filters = 0;
+static bool parse_man = false, parse_cat = false;
+static bool show_whatis = false, show_filters = false;
static const char *encoding = NULL;
static char **files;
static int num_files;
@@ -80,19 +84,19 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'm':
- parse_man = 1;
+ parse_man = true;
return 0;
case 'c':
- parse_cat = 1;
+ parse_cat = true;
return 0;
case 'w':
- show_whatis = 1;
+ show_whatis = true;
return 0;
case 'f':
- show_filters = 1;
+ show_filters = true;
return 0;
case 'E':
encoding = arg;
@@ -119,9 +123,9 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
"-m -c");
/* defaults: --man, --whatis */
if (!parse_man && !parse_cat)
- parse_man = 1;
+ parse_man = true;
if (!show_whatis && !show_filters)
- show_whatis = 1;
+ show_whatis = true;
return 0;
}
return ARGP_ERR_UNKNOWN;
@@ -148,7 +152,7 @@ int main (int argc, char **argv)
{
int type = 0;
int i;
- int some_failed = 0;
+ bool some_failed = false;
set_program_name (argv[0]);
@@ -173,7 +177,7 @@ int main (int argc, char **argv)
for (i = 0; i < num_files; ++i) {
lexgrog lg;
const char *file;
- int found = 0;
+ bool found = false;
lg.type = type;
@@ -205,13 +209,12 @@ int main (int argc, char **argv)
}
if (file && find_name (file, "-", &lg, encoding)) {
- struct page_description *descs =
- parse_descriptions (NULL, lg.whatis);
+ gl_list_t descs = parse_descriptions (NULL, lg.whatis);
const struct page_description *desc;
- for (desc = descs; desc; desc = desc->next) {
+ GL_LIST_FOREACH_START (descs, desc) {
if (!desc->name || !desc->whatis)
continue;
- found = 1;
+ found = true;
printf ("%s", files[i]);
if (show_filters)
printf (" (%s)", lg.filters);
@@ -219,18 +222,20 @@ int main (int argc, char **argv)
printf (": \"%s - %s\"",
desc->name, desc->whatis);
printf ("\n");
- }
- free_descriptions (descs);
+ } GL_LIST_FOREACH_END (descs);
+ gl_list_free (descs);
free (lg.filters);
free (lg.whatis);
}
if (!found) {
printf ("%s: parse failed\n", files[i]);
- some_failed = 1;
+ some_failed = true;
}
}
+ sandbox_free (sandbox);
+
if (some_failed)
return FATAL;
else
diff --git a/src/man.c b/src/man.c
index a1445964..78c8968c 100644
--- a/src/man.c
+++ b/src/man.c
@@ -40,6 +40,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -48,18 +49,8 @@
#include <errno.h>
#include <termios.h>
#include <unistd.h>
-
-#ifndef R_OK
-# define R_OK 4
-# define X_OK 1
-#endif /* !R_OK */
-
#include <limits.h>
-
-#if HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-
+#include <fcntl.h>
#include <ctype.h>
#include <signal.h>
#include <time.h>
@@ -68,13 +59,19 @@
#include "argp.h"
#include "dirname.h"
+#include "gl_array_list.h"
+#include "gl_hash_map.h"
+#include "gl_list.h"
+#include "gl_xlist.h"
+#include "gl_xmap.h"
#include "minmax.h"
#include "progname.h"
#include "regex.h"
#include "stat-time.h"
#include "utimens.h"
-#include "xvasprintf.h"
#include "xgetcwd.h"
+#include "xvasprintf.h"
+#include "xstdopen.h"
#include "gettext.h"
#include <locale.h>
@@ -85,7 +82,7 @@
#include "error.h"
#include "cleanup.h"
-#include "hashtable.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "pathsearch.h"
#include "linelength.h"
@@ -137,7 +134,7 @@ char *lang;
#define TFMT_PROG "mandb_tfmt"
#undef ALT_EXT_FORMAT /* allow external formatters located in cat hierarchy */
-static int global_manpath = -1; /* global or user manual page hierarchy? */
+static bool global_manpath; /* global or user manual page hierarchy? */
static int skip; /* page exists but has been skipped */
#if defined _AIX || defined __sgi
@@ -175,27 +172,20 @@ enum opts {
OPT_MAX
};
-struct string_llist;
-struct string_llist {
- const char *name;
- struct string_llist *next;
-};
-
-
-static char *manpathlist[MAXDIRS];
+static gl_list_t manpathlist;
/* globals */
int quiet = 1;
char *database = NULL;
extern const char *extension; /* for globbing.c */
extern char *user_config_file; /* defined in manp.c */
-extern int disable_cache;
+extern bool disable_cache;
extern int min_cat_width, max_cat_width, cat_width;
man_sandbox *sandbox;
/* locals */
static const char *alt_system_name;
-static const char **section_list;
+static gl_list_t section_list;
static const char *section;
static char *colon_sep_section_list;
static const char *preprocessors;
@@ -207,33 +197,33 @@ static char *less;
static const char *std_sections[] = STD_SECTIONS;
static char *manp;
static const char *external;
-static struct hashtable *db_hash = NULL;
+static gl_map_t db_map = NULL;
-static int troff;
+static bool troff;
static const char *roff_device = NULL;
static const char *want_encoding = NULL;
#ifdef NROFF_WARNINGS
static const char default_roff_warnings[] = "mac";
-static struct string_llist *roff_warnings = NULL;
+static gl_list_t roff_warnings;
#endif /* NROFF_WARNINGS */
-static int global_apropos;
-static int print_where, print_where_cat;
-static int catman;
-static int local_man_file;
-static int findall;
-static int update;
-static int match_case;
-static int regex_opt;
-static int wildcard;
-static int names_only;
+static bool global_apropos;
+static bool print_where, print_where_cat;
+static bool catman;
+static bool local_man_file;
+static bool findall;
+static bool update;
+static bool match_case;
+static bool regex_opt;
+static bool wildcard;
+static bool names_only;
static int ult_flags = SO_LINK | SOFT_LINK | HARD_LINK;
static const char *recode = NULL;
-static int no_hyphenation;
-static int no_justification;
-static int subpages = 1;
+static bool no_hyphenation;
+static bool no_justification;
+static bool subpages = true;
-static int ascii; /* insert tr in the output pipe */
-static int save_cat; /* security breach? Can we save the cat? */
+static bool ascii; /* insert tr in the output pipe */
+static bool save_cat; /* security breach? Can we save the cat? */
static int first_arg;
@@ -248,9 +238,9 @@ static struct timespec man_modtime; /* modtime of man page, for
* commit_tmp_cat() */
# ifdef TROFF_IS_GROFF
-static int ditroff;
+static bool ditroff;
static const char *gxditview;
-static int htmlout;
+static bool htmlout;
static const char *html_pager;
# endif /* TROFF_IS_GROFF */
@@ -352,7 +342,7 @@ static void init_html_pager (void)
static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
- static int apropos, whatis; /* retain values between calls */
+ static bool apropos, whatis; /* retain values between calls */
/* Please keep these keys in the same order as in options above. */
switch (key) {
@@ -360,7 +350,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
user_config_file = arg;
return 0;
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'D':
/* discard all preset options */
@@ -369,11 +359,11 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
print_where = print_where_cat =
ascii = match_case =
regex_opt = wildcard = names_only =
- no_hyphenation = no_justification = 0;
+ no_hyphenation = no_justification = false;
#ifdef TROFF_IS_GROFF
- ditroff = 0;
+ ditroff = false;
gxditview = NULL;
- htmlout = 0;
+ htmlout = false;
init_html_pager ();
#endif
roff_device = want_encoding = extension = pager =
@@ -390,13 +380,9 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
const char *warning;
for (warning = strtok (s, ","); warning;
- warning = strtok (NULL, ",")) {
- struct string_llist *new;
- new = xmalloc (sizeof *new);
- new->name = xstrdup (warning);
- new->next = roff_warnings;
- roff_warnings = new;
- }
+ warning = strtok (NULL, ","))
+ gl_list_add_last (roff_warnings,
+ xstrdup (warning));
free (s);
}
@@ -405,26 +391,26 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
case 'f':
external = WHATIS;
- whatis = 1;
+ whatis = true;
return 0;
case 'k':
external = APROPOS;
- apropos = 1;
+ apropos = true;
return 0;
case 'K':
- global_apropos = 1;
+ global_apropos = true;
return 0;
case 'w':
- print_where = 1;
+ print_where = true;
return 0;
case 'W':
- print_where_cat = 1;
+ print_where_cat = true;
return 0;
case 'l':
- local_man_file = 1;
+ local_man_file = true;
return 0;
case 'c':
- catman = 1;
+ catman = true;
return 0;
case 'R':
recode = arg;
@@ -449,30 +435,30 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
extension = arg;
return 0;
case 'i':
- match_case = 0;
+ match_case = false;
return 0;
case 'I':
- match_case = 1;
+ match_case = true;
return 0;
case OPT_REGEX:
- regex_opt = 1;
- findall = 1;
+ regex_opt = true;
+ findall = true;
return 0;
case OPT_WILDCARD:
- wildcard = 1;
- findall = 1;
+ wildcard = true;
+ findall = true;
return 0;
case OPT_NAMES:
- names_only = 1;
+ names_only = true;
return 0;
case 'a':
- findall = 1;
+ findall = true;
return 0;
case 'u':
- update = 1;
+ update = true;
return 0;
case OPT_NO_SUBPAGES:
- subpages = 0;
+ subpages = false;
return 0;
case 'P':
@@ -482,7 +468,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
prompt_string = arg;
return 0;
case '7':
- ascii = 1;
+ ascii = true;
return 0;
case 'E':
want_encoding = arg;
@@ -490,17 +476,17 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
roff_device = want_encoding;
return 0;
case OPT_NO_HYPHENATION:
- no_hyphenation = 1;
+ no_hyphenation = true;
return 0;
case OPT_NO_JUSTIFICATION:
- no_justification = 1;
+ no_justification = true;
return 0;
case 'p':
preprocessors = arg;
return 0;
#ifdef HAS_TROFF
case 't':
- troff = 1;
+ troff = true;
return 0;
case 'T':
/* Traditional nroff knows -T; troff does not (gets
@@ -508,27 +494,27 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
* does -T imply -t?
*/
roff_device = (arg ? arg : "ps");
- troff = 1;
+ troff = true;
return 0;
case 'H':
# ifdef TROFF_IS_GROFF
if (arg)
html_pager = arg;
- htmlout = 1;
- troff = 1;
+ htmlout = true;
+ troff = true;
roff_device = "html";
# endif /* TROFF_IS_GROFF */
return 0;
case 'X':
# ifdef TROFF_IS_GROFF
- troff = 1;
+ troff = true;
gxditview = (arg ? arg : "75");
# endif /* TROFF_IS_GROFF */
return 0;
case 'Z':
# ifdef TROFF_IS_GROFF
- ditroff = 1;
- troff = 1;
+ ditroff = true;
+ troff = true;
# endif /* TROFF_IS_GROFF */
return 0;
#endif /* HAS_TROFF */
@@ -539,8 +525,9 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
break;
case ARGP_KEY_SUCCESS:
/* check for incompatible options */
- if (troff + whatis + apropos + catman +
- (print_where || print_where_cat) > 1) {
+ if ((int) troff + (int) whatis + (int) apropos +
+ (int) catman +
+ (int) (print_where || print_where_cat) > 1) {
char *badopts = xasprintf
("%s%s%s%s%s%s",
troff ? "-[tTZH] " : "",
@@ -553,7 +540,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
_("%s: incompatible options"),
badopts);
}
- if (regex_opt + wildcard > 1) {
+ if ((int) regex_opt + (int) wildcard > 1) {
char *badopts = xasprintf
("%s%s",
regex_opt ? "--regex " : "",
@@ -618,48 +605,6 @@ static void gripe_no_name (const char *sect)
exit (FAIL);
}
-/* In case we're set-id, double-check that our standard file descriptors are
- * open in a standard way. See:
- *
- * http://austingroupbugs.net/view.php?id=173
- */
-static void check_standard_fds (void)
-{
- int flags, mode;
-
- /* We can't even write an error message in this case, so check it
- * first.
- */
- flags = fcntl (2, F_GETFL);
- if (flags < 0)
- exit (FATAL);
- mode = flags & O_ACCMODE;
- if (mode != O_WRONLY && mode != O_RDWR)
- exit (FATAL);
-
- flags = fcntl (0, F_GETFL);
- if (flags < 0) {
- fprintf (stderr, "stdin not open!\n");
- exit (FATAL);
- }
- mode = flags & O_ACCMODE;
- if (mode != O_RDONLY && mode != O_RDWR) {
- fprintf (stderr, "stdin not open for reading!\n");
- exit (FATAL);
- }
-
- flags = fcntl (1, F_GETFL);
- if (flags < 0) {
- fprintf (stderr, "stdout not open!\n");
- exit (FATAL);
- }
- mode = flags & O_ACCMODE;
- if (mode != O_WRONLY && mode != O_RDWR) {
- fprintf (stderr, "stdout not open for writing!\n");
- exit (FATAL);
- }
-}
-
static struct termios tms;
static int tms_set = 0;
static pid_t tms_pid = 0;
@@ -716,7 +661,7 @@ static void heirloom_line_length (void *data)
}
#endif /* HEIRLOOM_NROFF */
-static pipecmd *add_roff_line_length (pipecmd *cmd, int *save_cat_p)
+static pipecmd *add_roff_line_length (pipecmd *cmd, bool *save_cat_p)
{
int length;
pipecmd *ret = NULL;
@@ -733,7 +678,7 @@ static pipecmd *add_roff_line_length (pipecmd *cmd, int *save_cat_p)
debug ("Terminal width %d not within cat page range "
"[%d, %d]\n",
line_length, min_cat_width, max_cat_width);
- *save_cat_p = 0;
+ *save_cat_p = false;
}
}
@@ -976,17 +921,17 @@ static char *locale_manpath (const char *manpath)
*/
static const char *is_section (const char *name)
{
- const char **vs;
+ const char *vs;
- for (vs = section_list; *vs; vs++) {
- if (STREQ (*vs, name))
+ GL_LIST_FOREACH_START (section_list, vs) {
+ if (STREQ (vs, name))
return name;
/* allow e.g. 3perl but disallow 8139too and libfoo */
- if (strlen (*vs) == 1 && CTYPE (isdigit, **vs) &&
+ if (strlen (vs) == 1 && CTYPE (isdigit, *vs) &&
strlen (name) > 1 && !CTYPE (isdigit, name[1]) &&
- STRNEQ (*vs, name, 1))
+ STRNEQ (vs, name, 1))
return name;
- }
+ } GL_LIST_FOREACH_END (section_list);
return NULL;
}
@@ -1067,27 +1012,27 @@ static char *get_preprocessors (pipeline *decomp, const char *dbfilters,
if (dbfilters && (dbfilters[0] != '-') && !preprocessors) {
pp_string = xstrdup (dbfilters);
pp_source = "database";
- save_cat = 1;
+ save_cat = true;
} else if (preprocessors) {
pp_string = xstrdup (preprocessors);
pp_source = "command line";
- save_cat = 0;
+ save_cat = false;
} else if ((pp_string = get_preprocessors_from_file (decomp,
prefixes))) {
pp_source = "file";
- save_cat = 1;
+ save_cat = true;
} else if ((env = getenv ("MANROFFSEQ"))) {
pp_string = xstrdup (env);
pp_source = "environment";
- save_cat = 0;
+ save_cat = false;
} else if (!dbfilters) {
pp_string = xstrdup (DEFAULT_MANROFFSEQ);
pp_source = "default";
- save_cat = 1;
+ save_cat = true;
} else {
pp_string = xstrdup ("");
pp_source = "no filters";
- save_cat = 1;
+ save_cat = true;
}
debug ("pre-processors `%s' from %s\n", pp_string, pp_source);
@@ -1311,7 +1256,7 @@ static pipeline *make_roff_command (const char *dir, const char *file,
do {
#ifdef NROFF_WARNINGS
- struct string_llist *cur;
+ const char *warning;
#endif /* NROFF_WARNINGS */
int wants_dev = 0; /* filter wants a dev argument */
int wants_post = 0; /* postprocessor arguments */
@@ -1359,7 +1304,7 @@ static pipeline *make_roff_command (const char *dir, const char *file,
if (troff) {
cmd = pipecmd_new_argstr
(get_def ("troff", TROFF));
- save_cat = 0;
+ save_cat = false;
} else
cmd = pipecmd_new_argstr
(get_def ("nroff", NROFF));
@@ -1379,9 +1324,9 @@ static pipeline *make_roff_command (const char *dir, const char *file,
#endif /* TROFF_IS_GROFF || HEIRLOOM_NROFF */
#ifdef NROFF_WARNINGS
- for (cur = roff_warnings; cur;
- cur = cur->next)
- pipecmd_argf (cmd, "-w%s", cur->name);
+ GL_LIST_FOREACH_START (roff_warnings, warning)
+ pipecmd_argf (cmd, "-w%s", warning);
+ GL_LIST_FOREACH_END (roff_warnings);
#endif /* NROFF_WARNINGS */
#ifdef HEIRLOOM_NROFF
@@ -1478,7 +1423,7 @@ static pipeline *make_browser (const char *pattern, const char *file)
pipeline *p;
pipecmd *cmd;
char *browser = xmalloc (1);
- int found_percent_s = 0;
+ bool found_percent_s = false;
char *percent;
char *esc_file;
@@ -1502,7 +1447,7 @@ static pipeline *make_browser (const char *pattern, const char *file)
browser = appendstr (browser, esc_file,
(void *) 0);
free (esc_file);
- found_percent_s = 1;
+ found_percent_s = true;
break;
default:
len = strlen (browser); /* cannot be NULL */
@@ -2204,7 +2149,7 @@ static int display (const char *dir, const char *man_file,
int prefixes = 0;
pipeline *format_cmd; /* command to format man_file to stdout */
char *formatted_encoding = NULL;
- int display_to_stdout;
+ bool display_to_stdout;
pipeline *decomp = NULL;
int decomp_errno = 0;
@@ -2308,10 +2253,10 @@ static int display (const char *dir, const char *man_file,
display_to_stdout = troff;
#ifdef TROFF_IS_GROFF
if (htmlout)
- display_to_stdout = 0;
+ display_to_stdout = false;
#endif
if (recode)
- display_to_stdout = 1;
+ display_to_stdout = true;
if (display_to_stdout) {
/* If we're reading stdin via '-l -', man_file is "". See
@@ -2367,7 +2312,7 @@ static int display (const char *dir, const char *man_file,
|| local_man_file
|| recode
|| disable_cache)
- save_cat = 0;
+ save_cat = false;
if (!man_file) {
/* Stray cat. */
@@ -2375,7 +2320,7 @@ static int display (const char *dir, const char *man_file,
format = 0;
} else if (!cat_file) {
assert (man_file);
- save_cat = 0;
+ save_cat = false;
format = 1;
} else if (format && save_cat) {
char *cat_dir;
@@ -2419,7 +2364,7 @@ static int display (const char *dir, const char *man_file,
(format ? man_file : cat_file, R_OK);
debug ("format: %d, save_cat: %d, found: %d\n",
- format, save_cat, found);
+ format, (int) save_cat, found);
if (!found) {
pipeline_free (format_cmd);
@@ -2692,25 +2637,25 @@ static int get_ult_flags (char from_db, char id)
}
/* Is this candidate substantially a duplicate of a previous one?
- * Returns non-zero if so, otherwise zero.
+ * Returns true if so, otherwise false.
*/
-static int duplicate_candidates (struct candidate *left,
- struct candidate *right)
+static bool duplicate_candidates (struct candidate *left,
+ struct candidate *right)
{
const char *slash1, *slash2;
struct locale_bits bits1, bits2;
- int ret;
+ bool ret;
if (left->ult && right->ult && STREQ (left->ult, right->ult))
- return 1; /* same ultimate source file */
+ return true; /* same ultimate source file */
if (!STREQ (left->source->name, right->source->name) ||
!STREQ (left->source->sec, right->source->sec) ||
!STREQ (left->source->ext, right->source->ext))
- return 0; /* different name/section/extension */
+ return false; /* different name/section/extension */
if (STREQ (left->path, right->path))
- return 1; /* same path */
+ return true; /* same path */
/* Figure out if we've had a sufficiently similar candidate for this
* language already.
@@ -2720,7 +2665,7 @@ static int duplicate_candidates (struct candidate *left,
if (!slash1 || !slash2 ||
!STRNEQ (left->path, right->path,
MAX (slash1 - left->path, slash2 - right->path)))
- return 0; /* different path base */
+ return false; /* different path base */
unpack_locale_bits (++slash1, &bits1);
unpack_locale_bits (++slash2, &bits2);
@@ -2728,12 +2673,12 @@ static int duplicate_candidates (struct candidate *left,
if (!STREQ (bits1.language, bits2.language) ||
!STREQ (bits1.territory, bits2.territory) ||
!STREQ (bits1.modifier, bits2.modifier))
- ret = 0; /* different language/territory/modifier */
+ ret = false; /* different language/territory/modifier */
else
/* Everything seems to be the same; we can find nothing to
* choose between them.
*/
- ret = 1;
+ ret = true;
free_locale_bits (&bits1);
free_locale_bits (&bits2);
@@ -2744,7 +2689,6 @@ static int compare_candidates (const struct candidate *left,
const struct candidate *right)
{
const struct mandata *lsource = left->source, *rsource = right->source;
- int sec_left = 0, sec_right = 0;
int cmp;
const char *slash1, *slash2;
@@ -2771,7 +2715,7 @@ static int compare_candidates (const struct candidate *left,
* moved out of order with respect to their parent sections.
*/
if (strcmp (lsource->ext, rsource->ext)) {
- const char **sp;
+ size_t index_left, index_right;
/* If the user asked for an explicit section, sort exact
* matches first.
@@ -2787,24 +2731,30 @@ static int compare_candidates (const struct candidate *left,
}
/* Find out whether lsource->ext is ahead of rsource->ext in
- * section_list.
+ * section_list. Sections missing from section_list are
+ * sorted to the end.
*/
- for (sp = section_list; *sp; ++sp) {
- if (!*(*sp + 1)) {
- /* No extension */
- if (!sec_left && **sp == *(lsource->ext))
- sec_left = sp - section_list + 1;
- if (!sec_right && **sp == *(rsource->ext))
- sec_right = sp - section_list + 1;
- } else if (STREQ (*sp, lsource->ext)) {
- sec_left = sp - section_list + 1;
- } else if (STREQ (*sp, rsource->ext)) {
- sec_right = sp - section_list + 1;
- }
- /* Keep looking for a more specific match */
+ index_left = gl_list_indexof (section_list, lsource->ext);
+ if (index_left == (size_t) -1 && strlen (lsource->ext) > 1) {
+ char *sec_left = xstrndup (lsource->ext, 1);
+ index_left = gl_list_indexof (section_list, sec_left);
+ free (sec_left);
+ if (index_left == (size_t) -1)
+ index_left = gl_list_size (section_list);
+ }
+ index_right = gl_list_indexof (section_list, rsource->ext);
+ if (index_right == (size_t) -1 && strlen (rsource->ext) > 1) {
+ char *sec_right = xstrndup (rsource->ext, 1);
+ index_right = gl_list_indexof (section_list,
+ sec_right);
+ free (sec_right);
+ if (index_right == (size_t) -1)
+ index_right = gl_list_size (section_list);
}
- if (sec_left != sec_right)
- return sec_left - sec_right;
+ if (index_left < index_right)
+ return -1;
+ else if (index_left > index_right)
+ return 1;
cmp = strcmp (lsource->sec, rsource->sec);
if (cmp)
@@ -3086,8 +3036,8 @@ static int try_section (const char *path, const char *sec, const char *name,
struct candidate **cand_head)
{
int found = 0;
- char **names = NULL, **np;
- size_t names_len = 0;
+ gl_list_t names = NULL;
+ const char *found_name;
char cat = 0;
int lff_opts = (match_case ? LFF_MATCHCASE : 0) |
(regex_opt ? LFF_REGEX : 0) |
@@ -3101,7 +3051,7 @@ static int try_section (const char *path, const char *sec, const char *name,
*/
names = look_for_file (path, sec, name, 0, lff_opts);
- if (!names)
+ if (!gl_list_size (names))
/*
* No files match.
* See if there's a preformatted page around that
@@ -3113,18 +3063,17 @@ static int try_section (const char *path, const char *sec, const char *name,
return 1;
if (!troff && !want_encoding && !recode) {
+ gl_list_free (names);
names = look_for_file (path, sec, name, 1, lff_opts);
cat = 1;
}
}
- for (np = names; np && *np; np++)
- ++names_len;
- order_files (path, names, names_len);
+ order_files (path, &names);
- for (np = names; np && *np; np++) {
+ GL_LIST_FOREACH_START (names, found_name) {
struct mandata *info = infoalloc ();
- char *info_buffer = filename_info (*np, info, name);
+ char *info_buffer = filename_info (found_name, info, name);
const char *ult;
int f;
@@ -3138,16 +3087,16 @@ static int try_section (const char *path, const char *sec, const char *name,
* must be either ULT_MAN or SO_MAN. ult_src() can tell us
* which.
*/
- ult = ult_src (*np, path, NULL, ult_flags, NULL);
+ ult = ult_src (found_name, path, NULL, ult_flags, NULL);
if (!ult) {
/* already warned */
- debug ("try_section(): bad link %s\n", *np);
+ debug ("try_section(): bad link %s\n", found_name);
free (info_buffer);
info->addr = NULL;
free_mandata_struct (info);
continue;
}
- if (STREQ (ult, *np))
+ if (STREQ (ult, found_name))
info->id = ULT_MAN;
else
info->id = SO_MAN;
@@ -3164,8 +3113,9 @@ static int try_section (const char *path, const char *sec, const char *name,
free_mandata_struct (info);
}
/* Don't free info and info_buffer here. */
- }
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
return found;
}
@@ -3355,11 +3305,6 @@ static int display_database_check (struct candidate *candp)
return exists;
}
-static void db_hashtable_free (void *defn)
-{
- free_mandata_struct (defn);
-}
-
#ifdef MAN_DB_UPDATES
static int maybe_update_file (const char *manpath, const char *name,
struct mandata *info)
@@ -3418,16 +3363,26 @@ static int maybe_update_file (const char *manpath, const char *name,
#define TRY_DATABASE_UPDATED -3
#endif /* MAN_DB_UPDATES */
+static void db_map_value_free (const void *value)
+{
+ /* The value may be NULL to indicate that opening the database at
+ * this location already failed.
+ */
+ if (value)
+ gl_list_free ((gl_list_t) value);
+}
+
/* Look for a page in the database. If db not accessible, return -1,
otherwise return number of pages found. */
static int try_db (const char *manpath, const char *sec, const char *name,
struct candidate **cand_head)
{
- struct mandata *loc, *data;
+ gl_list_t matches;
+ struct mandata *loc;
char *catpath;
int found = 0;
#ifdef MAN_DB_UPDATES
- int found_stale = 0;
+ bool found_stale = false;
#endif /* MAN_DB_UPDATES */
/* find out where our db for this manpath should be */
@@ -3440,13 +3395,11 @@ static int try_db (const char *manpath, const char *sec, const char *name,
} else
database = mkdbname (manpath);
- if (!db_hash)
- db_hash = hashtable_create (&db_hashtable_free);
+ if (!db_map)
+ db_map = new_string_map (GL_HASH_MAP, db_map_value_free);
- /* Have we looked here already? */
- data = hashtable_lookup (db_hash, manpath, strlen (manpath));
-
- if (!data) {
+ /* If we haven't looked here already, do so now. */
+ if (!gl_map_search (db_map, manpath, (const void **) &matches)) {
MYDBM_FILE dbf;
dbf = MYDBM_RDOPEN (database);
@@ -3460,14 +3413,13 @@ static int try_db (const char *manpath, const char *sec, const char *name,
/* if section is set, only return those that match,
otherwise NULL retrieves all available */
if (regex_opt || wildcard)
- data = dblookup_pattern
+ matches = dblookup_pattern
(dbf, name, section, match_case,
regex_opt, !names_only);
else
- data = dblookup_all (dbf, name, section,
- match_case);
- hashtable_install (db_hash, manpath, strlen (manpath),
- data);
+ matches = dblookup_all (dbf, name, section,
+ match_case);
+ gl_map_put (db_map, xstrdup (manpath), matches);
MYDBM_CLOSE (dbf);
dbf = NULL;
#ifdef MAN_DB_CREATES
@@ -3475,60 +3427,50 @@ static int try_db (const char *manpath, const char *sec, const char *name,
/* create one */
debug ("Failed to open %s O_RDONLY\n", database);
if (run_mandb (1, manpath, NULL)) {
- data = infoalloc ();
- data->next = NULL;
- data->addr = NULL;
- hashtable_install (db_hash,
- manpath, strlen (manpath),
- data);
+ gl_map_put (db_map, xstrdup (manpath), NULL);
return TRY_DATABASE_OPEN_FAILED;
}
return TRY_DATABASE_CREATED;
#endif /* MAN_DB_CREATES */
} else {
debug ("Failed to open %s O_RDONLY\n", database);
- data = infoalloc ();
- data->next = (struct mandata *) NULL;
- data->addr = NULL;
- hashtable_install (db_hash, manpath, strlen (manpath),
- data);
+ gl_map_put (db_map, xstrdup (manpath), NULL);
return TRY_DATABASE_OPEN_FAILED;
}
+ assert (matches != NULL);
}
- /* if we already know that there is nothing here, get on with it */
- if (!data)
- return 0;
-
- /* We already tried (and failed) to open this db before */
- if (!data->addr)
+ /* We already tried (and failed) to open this db before. */
+ if (!matches)
return TRY_DATABASE_OPEN_FAILED;
#ifdef MAN_DB_UPDATES
/* Check that all the entries found are up to date. If not, the
* caller should try again.
*/
- for (loc = data; loc; loc = loc->next)
+ GL_LIST_FOREACH_START (matches, loc)
if (STREQ (sec, loc->sec) &&
(!extension || STREQ (extension, loc->ext)
|| STREQ (extension, loc->ext + strlen (sec))))
if (maybe_update_file (manpath, name, loc))
- found_stale = 1;
+ found_stale = true;
+ GL_LIST_FOREACH_END (matches);
if (found_stale) {
- hashtable_remove (db_hash, manpath, strlen (manpath));
+ gl_map_remove (db_map, manpath);
return TRY_DATABASE_UPDATED;
}
#endif /* MAN_DB_UPDATES */
/* cycle through the mandata structures (there's usually only
1 or 2) and see what we have w.r.t. the current section */
- for (loc = data; loc; loc = loc->next)
+ GL_LIST_FOREACH_START (matches, loc)
if (STREQ (sec, loc->sec) &&
(!extension || STREQ (extension, loc->ext)
|| STREQ (extension, loc->ext + strlen (sec))))
found += add_candidate (cand_head, CANDIDATE_DATABASE,
0, name, manpath, NULL, loc);
+ GL_LIST_FOREACH_END (matches);
return found;
}
@@ -3673,8 +3615,8 @@ static int do_global_apropos_section (const char *path, const char *sec,
const char *name)
{
int found = 0;
- char **names, **np;
- size_t names_len = 0;
+ gl_list_t names;
+ const char *found_name;
regex_t search;
global_manpath = is_global_mandir (path);
@@ -3684,6 +3626,7 @@ static int do_global_apropos_section (const char *path, const char *sec,
debug ("searching in %s, section %s\n", path, sec);
names = look_for_file (path, sec, "*", 0, LFF_WILDCARD);
+
if (regex_opt)
xregcomp (&search, name,
REG_EXTENDED | REG_NOSUB |
@@ -3691,33 +3634,31 @@ static int do_global_apropos_section (const char *path, const char *sec,
else
memset (&search, 0, sizeof search);
- for (np = names; np && *np; ++np)
- ++names_len;
- order_files (path, names, names_len);
+ order_files (path, &names);
- for (np = names; np && *np; ++np) {
+ GL_LIST_FOREACH_START (names, found_name) {
struct mandata *info;
char *info_buffer;
char *title = NULL;
const char *man_file;
char *cat_file = NULL;
- if (!grep (*np, name, &search))
+ if (!grep (found_name, name, &search))
continue;
info = infoalloc ();
- info_buffer = filename_info (*np, info, NULL);
+ info_buffer = filename_info (found_name, info, NULL);
if (!info_buffer)
goto next;
info->addr = info_buffer;
title = xasprintf ("%s(%s)", strchr (info_buffer, '\0') + 1,
info->ext);
- man_file = ult_src (*np, path, NULL, ult_flags, NULL);
+ man_file = ult_src (found_name, path, NULL, ult_flags, NULL);
if (!man_file)
goto next;
lang = lang_dir (man_file);
- cat_file = find_cat_file (path, *np, man_file);
+ cat_file = find_cat_file (path, found_name, man_file);
if (display (path, man_file, cat_file, title, NULL))
found = 1;
free (lang);
@@ -3727,7 +3668,9 @@ next:
free (cat_file);
free (title);
free_mandata_struct (info);
- }
+ } GL_LIST_FOREACH_END (names);
+
+ gl_list_free (names);
if (regex_opt)
regfree (&search);
@@ -3740,23 +3683,26 @@ next:
static int do_global_apropos (const char *name, int *found)
{
- const char **my_section_list;
- const char **sp;
- char **mp;
+ gl_list_t my_section_list;
+ const char *sec;
if (section) {
- my_section_list = XNMALLOC (2, const char *);
- my_section_list[0] = section;
- my_section_list[1] = NULL;
+ my_section_list = gl_list_create_empty (GL_ARRAY_LIST, NULL,
+ NULL, NULL, false);
+ gl_list_add_last (my_section_list, section);
} else
my_section_list = section_list;
- for (sp = my_section_list; *sp; sp++)
- for (mp = manpathlist; *mp; mp++)
- *found += do_global_apropos_section (*mp, *sp, name);
+ GL_LIST_FOREACH_START (my_section_list, sec) {
+ char *mp;
+
+ GL_LIST_FOREACH_START (manpathlist, mp)
+ *found += do_global_apropos_section (mp, sec, name);
+ GL_LIST_FOREACH_END (manpathlist);
+ } GL_LIST_FOREACH_END (my_section_list);
if (section)
- free (my_section_list);
+ gl_list_free (my_section_list);
return *found ? OK : NOT_FOUND;
}
@@ -3768,10 +3714,10 @@ static int man (const char *name, int *found);
static int local_man_loop (const char *argv)
{
int exit_status = OK;
- int local_mf = local_man_file;
+ bool local_mf = local_man_file;
drop_effective_privs ();
- local_man_file = 1;
+ local_man_file = true;
if (strcmp (argv, "-") == 0)
display (NULL, "", NULL, "(stdin)", NULL);
else {
@@ -3806,7 +3752,7 @@ static int local_man_loop (const char *argv)
if (directory_on_path (argv_dir)) {
char *argv_base = base_name (argv);
char *new_manp, *nm;
- char **old_manpathlist, **mp;
+ gl_list_t old_manpathlist;
debug ("recalculating manpath for executable "
"in %s\n", argv_dir);
@@ -3821,18 +3767,13 @@ static int local_man_loop (const char *argv)
free (new_manp);
new_manp = nm;
- old_manpathlist = XNMALLOC (MAXDIRS, char *);
- memcpy (old_manpathlist, manpathlist,
- MAXDIRS * sizeof (*manpathlist));
- create_pathlist (new_manp, manpathlist);
+ old_manpathlist = manpathlist;
+ manpathlist = create_pathlist (new_manp);
man (argv_base, &found);
- for (mp = manpathlist; *mp; ++mp)
- free (*mp);
- memcpy (manpathlist, old_manpathlist,
- MAXDIRS * sizeof (*manpathlist));
- free (old_manpathlist);
+ free_pathlist (manpathlist);
+ manpathlist = old_manpathlist;
executable_out:
free (new_manp);
free (argv_base);
@@ -3901,10 +3842,12 @@ static void locate_page_in_manpath (const char *page_section,
struct candidate **candidates,
int *found)
{
- char **mp;
+ char *mp;
- for (mp = manpathlist; *mp; mp++)
- *found += locate_page (*mp, page_section, page_name, candidates);
+ GL_LIST_FOREACH_START (manpathlist, mp)
+ *found += locate_page (mp, page_section, page_name,
+ candidates);
+ GL_LIST_FOREACH_END (manpathlist);
}
/*
@@ -3939,11 +3882,11 @@ static int man (const char *name, int *found)
if (section)
locate_page_in_manpath (section, name, &candidates, found);
else {
- const char **sp;
+ const char *sec;
- for (sp = section_list; *sp; sp++) {
- locate_page_in_manpath (*sp, name, &candidates, found);
- }
+ GL_LIST_FOREACH_START (section_list, sec)
+ locate_page_in_manpath (sec, name, &candidates, found);
+ GL_LIST_FOREACH_END (section_list);
}
split_page_name (name, &page_name, &page_section);
@@ -3969,20 +3912,20 @@ static int man (const char *name, int *found)
}
-static const char **get_section_list (void)
+static gl_list_t get_section_list (void)
{
- int i = 0;
- const char **config_sections;
- const char **sections = NULL;
+ gl_list_t config_sections, sections;
const char *sec;
/* Section list from configuration file, or STD_SECTIONS if it's
* empty.
*/
config_sections = get_sections ();
- if (!*config_sections) {
- free (config_sections);
- config_sections = std_sections;
+ if (!gl_list_size (config_sections)) {
+ int i;
+ for (i = 0; std_sections[i]; ++i)
+ gl_list_add_last (config_sections,
+ xstrdup (std_sections[i]));
}
if (colon_sep_section_list == NULL)
@@ -3994,17 +3937,16 @@ static const char **get_section_list (void)
* man's -s option takes a comma-separated list, so we accept that
* too for compatibility.
*/
+ sections = new_string_list (GL_ARRAY_LIST, true);
for (sec = strtok (colon_sep_section_list, ":,"); sec;
- sec = strtok (NULL, ":,")) {
- sections = xnrealloc (sections, i + 2, sizeof *sections);
- sections[i++] = sec;
- }
+ sec = strtok (NULL, ":,"))
+ gl_list_add_last (sections, xstrdup (sec));
- if (i > 0) {
- sections[i] = NULL;
+ if (gl_list_size (sections)) {
+ gl_list_free (config_sections);
return sections;
} else {
- free (sections);
+ gl_list_free (sections);
return config_sections;
}
}
@@ -4086,8 +4028,6 @@ int main (int argc, char *argv[])
set_program_name (argv[0]);
- check_standard_fds ();
-
init_debug ();
pipeline_install_post_fork (pop_all_cleanups);
sandbox = sandbox_init ();
@@ -4103,6 +4043,8 @@ int main (int argc, char *argv[])
multiple_locale = getenv ("LANGUAGE");
internal_locale = xstrdup (internal_locale ? internal_locale : "C");
+ xstdopen ();
+
/* export argv, it might be needed when invoking the vendor supplied browser */
#if defined _AIX || defined __sgi
global_argv = argv;
@@ -4114,6 +4056,10 @@ int main (int argc, char *argv[])
init_html_pager ();
#endif /* TROFF_IS_GROFF */
+#ifdef NROFF_WARNINGS
+ roff_warnings = new_string_list (GL_ARRAY_LIST, true);
+#endif /* NROFF_WARNINGS */
+
/* First of all, find out if $MANOPT is set. If so, put it in
*argv[] format for argp to play with. */
argv_env = manopt_to_env (&argc_env);
@@ -4226,7 +4172,7 @@ int main (int argc, char *argv[])
debug ("manpath search path (with duplicates) = %s\n", manp);
- create_pathlist (manp, manpathlist);
+ manpathlist = create_pathlist (manp);
/* man issued with `-l' option */
if (local_man_file) {
@@ -4288,14 +4234,14 @@ int main (int argc, char *argv[])
if (global_apropos)
status = do_global_apropos (nextarg, &found);
else {
- int found_subpage = 0;
+ bool found_subpage = false;
if (subpages && first_arg < argc) {
char *subname = xasprintf (
"%s-%s", nextarg, argv[first_arg]);
status = man (subname, &found);
free (subname);
if (status == OK) {
- found_subpage = 1;
+ found_subpage = true;
++first_arg;
}
}
@@ -4305,7 +4251,7 @@ int main (int argc, char *argv[])
status = man (subname, &found);
free (subname);
if (status == OK) {
- found_subpage = 1;
+ found_subpage = true;
++first_arg;
}
}
@@ -4314,15 +4260,17 @@ int main (int argc, char *argv[])
}
/* clean out the cache of database lookups for each man page */
- hashtable_free (db_hash);
- db_hash = NULL;
+ if (db_map) {
+ gl_map_free (db_map);
+ db_map = NULL;
+ }
if (section && maybe_section) {
if (status != OK && !catman) {
/* Maybe the section wasn't a section after
* all? e.g. 'man 9wm fvwm'.
*/
- int found_subpage = 0;
+ bool found_subpage = false;
debug ("\nRetrying section %s as name\n",
section);
tmp = section;
@@ -4333,14 +4281,16 @@ int main (int argc, char *argv[])
status = man (subname, &found);
free (subname);
if (status == OK) {
- found_subpage = 1;
+ found_subpage = true;
++first_arg;
}
}
if (!found_subpage)
status = man (tmp, &found);
- hashtable_free (db_hash);
- db_hash = NULL;
+ if (db_map) {
+ gl_map_free (db_map);
+ db_map = NULL;
+ }
/* ... but don't gripe about it if it doesn't
* work!
*/
@@ -4385,13 +4335,17 @@ int main (int argc, char *argv[])
chkr_garbage_detector ();
}
- hashtable_free (db_hash);
- db_hash = NULL;
+ if (db_map) {
+ gl_map_free (db_map);
+ db_map = NULL;
+ }
drop_effective_privs ();
free (database);
+ gl_list_free (section_list);
free_pathlist (manpathlist);
free (internal_locale);
+ sandbox_free (sandbox);
exit (exit_status);
}
diff --git a/src/manconv_main.c b/src/manconv_main.c
index 75c08ab0..949c6b6f 100644
--- a/src/manconv_main.c
+++ b/src/manconv_main.c
@@ -24,6 +24,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -111,7 +112,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
(void *) 0);
return 0;
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'q':
quiet = 1;
@@ -178,5 +179,7 @@ int main (int argc, char *argv[])
pipeline_wait (p);
+ sandbox_free (sandbox);
+
return 0;
}
diff --git a/src/mandb.c b/src/mandb.c
index 90325d91..0a06c714 100644
--- a/src/mandb.c
+++ b/src/mandb.c
@@ -30,6 +30,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -48,6 +49,9 @@
#include "argp.h"
#include "dirname.h"
+#include "gl_hash_map.h"
+#include "gl_list.h"
+#include "gl_xmap.h"
#include "progname.h"
#include "stat-time.h"
#include "timespec.h"
@@ -63,7 +67,7 @@
#include "error.h"
#include "cleanup.h"
-#include "hashtable.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "sandbox.h"
#include "security.h"
@@ -75,11 +79,11 @@
#include "manp.h"
int quiet = 1;
-extern int opt_test; /* don't update db */
+extern bool opt_test; /* don't update db */
char *manp;
char *database = NULL;
extern char *extension; /* for globbing.c */
-extern int force_rescan; /* for check_mandirs.c */
+extern bool force_rescan; /* for check_mandirs.c */
static char *single_filename = NULL;
extern char *user_config_file; /* for manp.c */
#ifdef MAN_OWNER
@@ -90,10 +94,10 @@ man_sandbox *sandbox;
static int purged = 0;
static int strays = 0;
-static int check_for_strays = 1;
-static int purge = 1;
-static int user;
-static int create;
+static bool check_for_strays = true;
+static bool purge = true;
+static bool user;
+static bool create;
static const char *arg_manp;
struct tried_catdirs_entry {
@@ -127,32 +131,32 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'q':
++quiet_temp;
return 0;
case 's':
- check_for_strays = 0;
+ check_for_strays = false;
return 0;
case 'p':
- purge = 0;
+ purge = false;
return 0;
case 'u':
- user = 1;
+ user = true;
return 0;
case 'c':
- create = 1;
- purge = 0;
+ create = true;
+ purge = false;
return 0;
case 't':
- opt_test = 1;
+ opt_test = true;
return 0;
case 'f':
single_filename = arg;
- create = 0;
- purge = 0;
- check_for_strays = 0;
+ create = false;
+ purge = false;
+ check_for_strays = false;
return 0;
case 'C':
user_config_file = arg;
@@ -202,7 +206,7 @@ extern uid_t ruid;
extern uid_t euid;
#endif /* MAN_OWNER */
-static char *manpathlist[MAXDIRS];
+static gl_list_t manpathlist;
extern int pages;
@@ -437,7 +441,8 @@ static void cleanup (void *arg)
/* sort out the database names */
static int mandb (struct dbpaths *dbpaths,
- const char *catpath, const char *manpath, int global_manpath)
+ const char *catpath, const char *manpath,
+ bool global_manpath)
{
int ret, amount;
char *dbname;
@@ -551,8 +556,8 @@ static int mandb (struct dbpaths *dbpaths,
return amount;
}
-static int process_manpath (const char *manpath, int global_manpath,
- struct hashtable *tried_catdirs)
+static int process_manpath (const char *manpath, bool global_manpath,
+ gl_map_t tried_catdirs)
{
char *catpath;
struct tried_catdirs_entry *tried;
@@ -572,7 +577,7 @@ static int process_manpath (const char *manpath, int global_manpath,
tried = XMALLOC (struct tried_catdirs_entry);
tried->manpath = xstrdup (manpath);
tried->seen = 0;
- hashtable_install (tried_catdirs, catpath, strlen (catpath), tried);
+ gl_map_put (tried_catdirs, xstrdup (catpath), tried);
if (stat (manpath, &st) < 0 || !S_ISDIR (st.st_mode))
goto out;
@@ -590,7 +595,7 @@ static int process_manpath (const char *manpath, int global_manpath,
} else
run_mandb = 1;
- force_rescan = 0;
+ force_rescan = false;
if (purge) {
database = mkdbname (catpath);
purged += purge_missing (manpath, catpath, run_mandb);
@@ -648,21 +653,21 @@ static int is_lang_dir (const char *base)
(!base[2] || base[2] < 'a' || base[2] > 'z');
}
-static void tried_catdirs_free (void *defn)
+static void tried_catdirs_free (const void *value)
{
- struct tried_catdirs_entry *tried = defn;
+ struct tried_catdirs_entry *tried =
+ (struct tried_catdirs_entry *) value;
free (tried->manpath);
free (tried);
}
-static void purge_catdir (const struct hashtable *tried_catdirs,
- const char *path)
+static void purge_catdir (gl_map_t tried_catdirs, const char *path)
{
struct stat st;
if (stat (path, &st) == 0 && S_ISDIR (st.st_mode) &&
- !hashtable_lookup (tried_catdirs, path, strlen (path))) {
+ !gl_map_get (tried_catdirs, path)) {
if (!quiet)
printf (_("Removing obsolete cat directory %s...\n"),
path);
@@ -714,14 +719,12 @@ static void purge_catsubdirs (const char *manpath, const char *catpath)
* the usual NLS pattern (two lower-case letters followed by nothing or a
* non-letter).
*/
-static void purge_catdirs (const struct hashtable *tried_catdirs)
+static void purge_catdirs (gl_map_t tried_catdirs)
{
- struct hashtable_iter *iter = NULL;
- const struct nlist *elt;
+ const char *path;
+ struct tried_catdirs_entry *tried;
- while ((elt = hashtable_iterate (tried_catdirs, &iter)) != NULL) {
- const char *path = elt->name;
- struct tried_catdirs_entry *tried = elt->defn;
+ GL_MAP_FOREACH_START (tried_catdirs, path, tried) {
char *base;
DIR *dir;
struct dirent *subdirent;
@@ -741,6 +744,7 @@ static void purge_catdirs (const struct hashtable *tried_catdirs)
continue;
while ((subdirent = readdir (dir)) != NULL) {
char *subdirpath;
+ const struct tried_catdirs_entry *subtried;
if (STREQ (subdirent->d_name, ".") ||
STREQ (subdirent->d_name, ".."))
@@ -753,30 +757,30 @@ static void purge_catdirs (const struct hashtable *tried_catdirs)
subdirpath = xasprintf ("%s/%s", path,
subdirent->d_name);
- tried = hashtable_lookup (tried_catdirs, subdirpath,
- strlen (subdirpath));
- if (tried && tried->seen) {
+ subtried = gl_map_get (tried_catdirs, subdirpath);
+ if (subtried && subtried->seen) {
debug ("Seen mandir for %s; not deleting\n",
subdirpath);
/* However, we may still need to purge cat*
* subdirectories.
*/
- purge_catsubdirs (tried->manpath, subdirpath);
+ purge_catsubdirs (subtried->manpath,
+ subdirpath);
} else
purge_catdir (tried_catdirs, subdirpath);
free (subdirpath);
}
closedir (dir);
- }
+ } GL_MAP_FOREACH_END (tried_catdirs);
}
int main (int argc, char *argv[])
{
char *sys_manp;
int amount = 0;
- char **mp;
- struct hashtable *tried_catdirs;
+ char *mp;
+ gl_map_t tried_catdirs;
#ifdef SIGPIPE
struct sigaction sa;
#endif /* SIGPIPE */
@@ -822,7 +826,7 @@ int main (int argc, char *argv[])
#ifdef MAN_OWNER
man_owner = get_man_owner ();
if (!user && euid != 0 && euid != man_owner->pw_uid)
- user = 1;
+ user = true;
#endif /* MAN_OWNER */
read_config_file (user);
@@ -848,16 +852,16 @@ int main (int argc, char *argv[])
debug ("manpath=%s\n", manp);
- /* get the manpath as an array of pointers */
- create_pathlist (manp, manpathlist);
+ /* get the manpath as a list of pointers */
+ manpathlist = create_pathlist (manp);
/* finished manpath processing, regain privs */
regain_effective_privs ();
- tried_catdirs = hashtable_create (tried_catdirs_free);
+ tried_catdirs = new_string_map (GL_HASH_MAP, tried_catdirs_free);
- for (mp = manpathlist; *mp; mp++) {
- int global_manpath = is_global_mandir (*mp);
+ GL_LIST_FOREACH_START (manpathlist, mp) {
+ bool global_manpath = is_global_mandir (mp);
int ret;
DIR *dir;
struct dirent *subdirent;
@@ -869,14 +873,14 @@ int main (int argc, char *argv[])
drop_effective_privs ();
}
- ret = process_manpath (*mp, global_manpath, tried_catdirs);
+ ret = process_manpath (mp, global_manpath, tried_catdirs);
if (ret < 0)
exit (FATAL);
amount += ret;
- dir = opendir (*mp);
+ dir = opendir (mp);
if (!dir) {
- error (0, errno, _("can't search directory %s"), *mp);
+ error (0, errno, _("can't search directory %s"), mp);
goto next_manpath;
}
@@ -890,7 +894,7 @@ int main (int argc, char *argv[])
if (STRNEQ (subdirent->d_name, "man", 3))
continue;
- subdirpath = xasprintf ("%s/%s", *mp,
+ subdirpath = xasprintf ("%s/%s", mp,
subdirent->d_name);
ret = process_manpath (subdirpath, global_manpath,
tried_catdirs);
@@ -907,10 +911,10 @@ next_manpath:
regain_effective_privs ();
chkr_garbage_detector ();
- }
+ } GL_LIST_FOREACH_END (manpathlist);
purge_catdirs (tried_catdirs);
- hashtable_free (tried_catdirs);
+ gl_map_free (tried_catdirs);
if (!quiet) {
printf (ngettext ("%d man subdirectory contained newer "
@@ -950,5 +954,6 @@ next_manpath:
if (must_create && STREQ (must_create, "1"))
exit (FAIL);
}
+ sandbox_free (sandbox);
exit (OK);
}
diff --git a/src/manp.c b/src/manp.c
index 5111be77..1dfecf38 100644
--- a/src/manp.c
+++ b/src/manp.c
@@ -47,6 +47,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdio.h>
#include <ctype.h>
#include <sys/types.h>
@@ -54,11 +55,15 @@
#include <assert.h>
#include <errno.h>
#include <dirent.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "canonicalize.h"
+#include "gl_array_list.h"
+#include "gl_linkedhash_list.h"
+#include "gl_xlist.h"
#include "xgetcwd.h"
#include "xvasprintf.h"
@@ -69,77 +74,76 @@
#include "error.h"
#include "cleanup.h"
+#include "glcontainers.h"
#include "security.h"
#include "manp.h"
#include "globbing.h"
-struct list {
+enum config_flag {
+ MANDATORY,
+ MANPATH_MAP,
+ MANDB_MAP,
+ MANDB_MAP_USER,
+ DEFINE,
+ DEFINE_USER,
+ SECTION,
+ SECTION_USER
+};
+
+struct config_item {
char *key;
char *cont;
- int flag;
- struct list *next;
+ enum config_flag flag;
};
-static struct list *namestore, *tailstore;
-
-#define SECTION_USER -6
-#define SECTION -5
-#define DEFINE_USER -4
-#define DEFINE -3
-#define MANDB_MAP_USER -2
-#define MANDB_MAP -1
-#define MANPATH_MAP 0
-#define MANDATORY 1
-
-/* DIRLIST list[MAXDIRS]; */
-static char *tmplist[MAXDIRS];
+static gl_list_t config;
char *user_config_file = NULL;
-int disable_cache;
+bool disable_cache;
int min_cat_width = 80, max_cat_width = 80, cat_width = 0;
-static char *has_mandir (const char *p);
+static void add_man_subdirs (gl_list_t list, const char *p);
static char *fsstnd (const char *path);
-static char *def_path (int flag);
-static void add_dir_to_list (char **lp, const char *dir);
-static char **add_dir_to_path_list (char **mphead, char **mp, const char *p);
+static char *def_path (enum config_flag flag);
+static void add_dir_to_list (gl_list_t list, const char *dir);
+static void add_dir_to_path_list (gl_list_t list, const char *p);
-static void add_to_list (const char *key, const char *cont, int flag)
+static void config_item_free (const void *elt)
{
- struct list *list = XMALLOC (struct list);
- list->key = xstrdup (key);
- list->cont = xstrdup (cont);
- list->flag = flag;
- list->next = NULL;
- if (tailstore)
- tailstore->next = list;
- tailstore = list;
- if (!namestore)
- namestore = list;
+ /* gl_list declares the argument as const, but there doesn't seem to
+ * be a good reason for this.
+ */
+ struct config_item *item = (struct config_item *) elt;
+ free (item->key);
+ free (item->cont);
+ free (item);
}
-static const char *get_from_list (const char *key, int flag)
+static void add_config (const char *key, const char *cont,
+ enum config_flag flag)
{
- struct list *list;
-
- for (list = namestore; list; list = list->next)
- if (flag == list->flag && STREQ (key, list->key))
- return list->cont;
-
- return NULL;
+ struct config_item *item = XMALLOC (struct config_item);
+ item->key = xstrdup (key);
+ item->cont = xstrdup (cont);
+ item->flag = flag;
+ gl_list_add_last (config, item);
}
-static struct list *iterate_over_list (struct list *prev, char *key, int flag)
+static const char *get_config (const char *key, enum config_flag flag)
{
- struct list *list;
+ const struct config_item *item;
+ char *cont = NULL;
- for (list = prev ? prev->next : namestore; list; list = list->next)
- if (flag == list->flag && STREQ (key, list->key))
- return list;
+ GL_LIST_FOREACH_START (config, item)
+ if (flag == item->flag && STREQ (key, item->key)) {
+ cont = item->cont;
+ break;
+ }
+ GL_LIST_FOREACH_END (config);
- return NULL;
+ return cont;
}
/* Must not return DEFINEs set in ~/.manpath. This is used to fetch
@@ -154,25 +158,52 @@ const char *get_def (const char *thing, const char *def)
if (!running_setuid ())
return get_def_user (thing, def);
- config_def = get_from_list (thing, DEFINE);
+ config_def = get_config (thing, DEFINE);
return config_def ? config_def : def;
}
const char *get_def_user (const char *thing, const char *def)
{
- const char *config_def = get_from_list (thing, DEFINE_USER);
+ const char *config_def = get_config (thing, DEFINE_USER);
if (!config_def)
- config_def = get_from_list (thing, DEFINE);
+ config_def = get_config (thing, DEFINE);
return config_def ? config_def : def;
}
+static const char *describe_flag (enum config_flag flag)
+{
+ switch (flag) {
+ case MANDATORY:
+ return "MANDATORY";
+ case MANPATH_MAP:
+ return "MANPATH_MAP";
+ case MANDB_MAP:
+ return "MANDB_MAP";
+ case MANDB_MAP_USER:
+ return "MANDB_MAP_USER";
+ case DEFINE:
+ return "DEFINE";
+ case DEFINE_USER:
+ return "DEFINE_USER";
+ case SECTION:
+ return "SECTION";
+ case SECTION_USER:
+ return "SECTION_USER";
+ default:
+ error (FATAL, 0, "impossible config_flag value %d",
+ flag);
+ abort (); /* error should have exited */
+ }
+}
+
static void print_list (void)
{
- struct list *list;
+ const struct config_item *item;
- for (list = namestore; list; list = list->next)
- debug ("`%s'\t`%s'\t`%d'\n",
- list->key, list->cont, list->flag);
+ GL_LIST_FOREACH_START (config, item)
+ debug ("`%s'\t`%s'\t`%s'\n",
+ item->key, item->cont, describe_flag (item->flag));
+ GL_LIST_FOREACH_END (config);
}
static void add_sections (char *sections, int user)
@@ -182,44 +213,40 @@ static void add_sections (char *sections, int user)
for (sect = strtok (section_list, " "); sect;
sect = strtok (NULL, " ")) {
- add_to_list (sect, "", user ? SECTION_USER : SECTION);
+ add_config (sect, "", user ? SECTION_USER : SECTION);
debug ("Added section `%s'.\n", sect);
}
free (section_list);
}
-const char **get_sections (void)
+gl_list_t get_sections (void)
{
- struct list *list;
+ const struct config_item *item;
int length_user = 0, length = 0;
- const char **sections, **sectionp;
- int flag;
+ gl_list_t sections;
+ enum config_flag flag;
- for (list = namestore; list; list = list->next) {
- if (list->flag == SECTION_USER)
+ GL_LIST_FOREACH_START (config, item) {
+ if (item->flag == SECTION_USER)
length_user++;
- else if (list->flag == SECTION)
+ else if (item->flag == SECTION)
length++;
- }
- if (length_user) {
- sections = xnmalloc (length_user + 1, sizeof *sections);
+ } GL_LIST_FOREACH_END (config);
+ sections = new_string_list (GL_ARRAY_LIST, true);
+ if (length_user)
flag = SECTION_USER;
- } else {
- sections = xnmalloc (length + 1, sizeof *sections);
+ else
flag = SECTION;
- }
- sectionp = sections;
- for (list = namestore; list; list = list->next)
- if (list->flag == flag)
- *sectionp++ = list->key;
- *sectionp = NULL;
+ GL_LIST_FOREACH_START (config, item)
+ if (item->flag == flag)
+ gl_list_add_last (sections, xstrdup (item->key));
+ GL_LIST_FOREACH_END (config);
return sections;
}
-static void add_def (char *thing, char *config_def, int flag, int user)
+static void add_def (const char *thing, const char *config_def, int user)
{
- add_to_list (thing, flag == 2 ? config_def : "",
- user ? DEFINE_USER : DEFINE);
+ add_config (thing, config_def, user ? DEFINE_USER : DEFINE);
debug ("Defined `%s' as `%s'.\n", thing, config_def);
}
@@ -229,24 +256,19 @@ static void add_manpath_map (const char *path, const char *mandir)
if (!path || !mandir)
return;
- add_to_list (path, mandir, MANPATH_MAP);
+ add_config (path, mandir, MANPATH_MAP);
debug ("Path `%s' mapped to mandir `%s'.\n", path, mandir);
}
-static void add_mandb_map (const char *mandir, const char *catdir,
- int flag, int user)
+static void add_mandb_map (const char *mandir, const char *catdir, int user)
{
char *tmpcatdir;
- assert (flag > 0);
-
if (!mandir)
return;
- if (flag == 1)
- tmpcatdir = xstrdup (mandir);
- else if (STREQ (catdir, "FSSTND"))
+ if (STREQ (catdir, "FSSTND"))
tmpcatdir = fsstnd (mandir);
else
tmpcatdir = xstrdup (catdir);
@@ -254,7 +276,7 @@ static void add_mandb_map (const char *mandir, const char *catdir,
if (!tmpcatdir)
return;
- add_to_list (mandir, tmpcatdir, user ? MANDB_MAP_USER : MANDB_MAP);
+ add_config (mandir, tmpcatdir, user ? MANDB_MAP_USER : MANDB_MAP);
debug ("%s mandir `%s', catdir `%s'.\n",
user ? "User" : "Global", mandir, tmpcatdir);
@@ -267,7 +289,7 @@ static void add_mandatory (const char *mandir)
if (!mandir)
return;
- add_to_list (mandir, "", MANDATORY);
+ add_config (mandir, "", MANDATORY);
debug ("Mandatory mandir `%s'.\n", mandir);
}
@@ -339,11 +361,6 @@ static void gripe_not_directory (const char *dir)
error (0, 0, _("warning: %s isn't a directory"), dir);
}
-static void gripe_overlong_list (void)
-{
- error (FAIL, 0, _("manpath list too long"));
-}
-
/* accept a manpath list, separated with ':', return the associated
catpath list */
char *cat_manpath (char *manp)
@@ -352,9 +369,9 @@ char *cat_manpath (char *manp)
const char *path, *catdir;
for (path = strsep (&manp, ":"); path; path = strsep (&manp, ":")) {
- catdir = get_from_list (path, MANDB_MAP_USER);
+ catdir = get_config (path, MANDB_MAP_USER);
if (!catdir)
- catdir = get_from_list (path, MANDB_MAP);
+ catdir = get_config (path, MANDB_MAP);
catp = catdir ? pathappend (catp, catdir)
: pathappend (catp, path);
}
@@ -697,7 +714,7 @@ char *get_manpath (const char *systems)
char *manpathlist;
/* need to read config file even if MANPATH set, for mandb(8) */
- read_config_file (0);
+ read_config_file (false);
manpathlist = getenv ("MANPATH");
if (manpathlist && *manpathlist) {
@@ -756,7 +773,7 @@ char *get_manpath (const char *systems)
}
/* Parse the manpath.config file, extracting appropriate information. */
-static void add_to_dirlist (FILE *config, int user)
+static void add_to_dirlist (FILE *config_file, int user)
{
char *bp;
char *buf = NULL;
@@ -765,7 +782,7 @@ static void add_to_dirlist (FILE *config, int user)
int val;
int c;
- while (getline (&buf, &n, config) >= 0) {
+ while (getline (&buf, &n, config_file) >= 0) {
bp = buf;
while (CTYPE (isspace, *bp))
@@ -778,7 +795,7 @@ static void add_to_dirlist (FILE *config, int user)
if (*bp == '#' || *bp == '\0')
goto next;
else if (strncmp (bp, "NOCACHE", 7) == 0)
- disable_cache = 1;
+ disable_cache = true;
else if (strncmp (bp, "NO", 2) == 0)
goto next; /* match any word starting with NO */
else if (sscanf (bp, "MANBIN %*s") == 1)
@@ -790,10 +807,10 @@ static void add_to_dirlist (FILE *config, int user)
add_manpath_map (key, cont);
else if ((c = sscanf (bp, "MANDB_MAP %511s %511s",
key, cont)) > 0)
- add_mandb_map (key, cont, c, user);
+ add_mandb_map (key, c == 2 ? cont : key, user);
else if ((c = sscanf (bp, "DEFINE %511s %511[^\n]",
key, cont)) > 0)
- add_def (key, cont, c, user);
+ add_def (key, c == 2 ? cont : "", user);
else if (sscanf (bp, "SECTION %511[^\n]", cont) == 1)
add_sections (cont, user);
else if (sscanf (bp, "SECTIONS %511[^\n]", cont) == 1)
@@ -820,28 +837,20 @@ next:
static void free_config_file (void *unused ATTRIBUTE_UNUSED)
{
- struct list *list = namestore, *prev;
-
- while (list) {
- free (list->key);
- free (list->cont);
- prev = list;
- list = list->next;
- free (prev);
- }
-
- namestore = tailstore = NULL;
+ gl_list_free (config);
}
-void read_config_file (int optional)
+void read_config_file (bool optional)
{
static int done = 0;
char *dotmanpath = NULL;
- FILE *config;
+ FILE *config_file;
if (done)
return;
+ config = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL,
+ config_item_free, true);
push_cleanup (free_config_file, NULL, 0);
if (user_config_file)
@@ -852,18 +861,18 @@ void read_config_file (int optional)
dotmanpath = xasprintf ("%s/.manpath", home);
}
if (dotmanpath) {
- config = fopen (dotmanpath, "r");
- if (config != NULL) {
+ config_file = fopen (dotmanpath, "r");
+ if (config_file != NULL) {
debug ("From the config file %s:\n\n", dotmanpath);
- add_to_dirlist (config, 1);
- fclose (config);
+ add_to_dirlist (config_file, 1);
+ fclose (config_file);
}
free (dotmanpath);
}
if (getenv ("MAN_TEST_DISABLE_SYSTEM_CONFIG") == NULL) {
- config = fopen (CONFIG_FILE, "r");
- if (config == NULL) {
+ config_file = fopen (CONFIG_FILE, "r");
+ if (config_file == NULL) {
if (optional)
debug ("can't open %s; continuing anyway\n",
CONFIG_FILE);
@@ -875,8 +884,8 @@ void read_config_file (int optional)
} else {
debug ("From the config file %s:\n\n", CONFIG_FILE);
- add_to_dirlist (config, 0);
- fclose (config);
+ add_to_dirlist (config_file, 0);
+ fclose (config_file);
}
}
@@ -890,34 +899,34 @@ void read_config_file (int optional)
* Construct the default manpath. This picks up mandatory manpaths
* only.
*/
-static char *def_path (int flag)
+static char *def_path (enum config_flag flag)
{
char *manpath = NULL;
- struct list *list;
+ const struct config_item *item;
- for (list = namestore; list; list = list->next)
- if (list->flag == flag) {
- char **expanded_dirs;
- int i;
+ GL_LIST_FOREACH_START (config, item)
+ if (item->flag == flag) {
+ gl_list_t expanded_dirs;
+ const char *expanded_dir;
- expanded_dirs = expand_path (list->key);
- for (i = 0; expanded_dirs[i]; i++) {
- int status = is_directory (expanded_dirs[i]);
+ expanded_dirs = expand_path (item->key);
+ GL_LIST_FOREACH_START (expanded_dirs, expanded_dir) {
+ int status = is_directory (expanded_dir);
if (status < 0)
- gripe_stat_file (expanded_dirs[i]);
+ gripe_stat_file (expanded_dir);
else if (status == 0 && !quiet)
error (0, 0,
_("warning: mandatory "
"directory %s doesn't exist"),
- expanded_dirs[i]);
+ expanded_dir);
else if (status == 1)
- manpath = pathappend
- (manpath, expanded_dirs[i]);
- free (expanded_dirs[i]);
- }
- free (expanded_dirs);
+ manpath = pathappend (manpath,
+ expanded_dir);
+ } GL_LIST_FOREACH_END (expanded_dirs);
+ gl_list_free (expanded_dirs);
}
+ GL_LIST_FOREACH_END (config);
/* If we have complete config file failure... */
if (!manpath)
@@ -928,9 +937,9 @@ static char *def_path (int flag)
/*
* If specified with configure, append OVERRIDE_DIR to dir param and add it
- * to the lp list.
+ * to list.
*/
-static void insert_override_dir (char **lp, const char *dir)
+static void insert_override_dir (gl_list_t list, const char *dir)
{
char *override_dir = NULL;
@@ -938,7 +947,7 @@ static void insert_override_dir (char **lp, const char *dir)
return;
if ((override_dir = xasprintf ("%s/%s", dir, OVERRIDE_DIR))) {
- add_dir_to_list (lp, override_dir);
+ add_dir_to_list (list, override_dir);
free (override_dir);
}
}
@@ -956,19 +965,20 @@ static void insert_override_dir (char **lp, const char *dir)
*/
char *get_manpath_from_path (const char *path, int mandatory)
{
+ gl_list_t tmplist;
+ const struct config_item *config_item;
int len;
char *tmppath;
- char *t;
char *p;
- char **lp;
char *end;
char *manpathlist;
- struct list *list;
+ char *item;
+ tmplist = new_string_list (GL_LINKEDHASH_LIST, false);
tmppath = xstrdup (path);
for (end = p = tmppath; end; p = end + 1) {
- struct list *mandir_list;
+ bool manpath_map_found = false;
end = strchr (p, ':');
if (end)
@@ -980,43 +990,28 @@ char *get_manpath_from_path (const char *path, int mandatory)
debug ("\npath directory %s ", p);
- mandir_list = iterate_over_list (NULL, p, MANPATH_MAP);
-
- /*
- * The directory we're working on is in the config file.
- * If we haven't added it to the list yet, do.
- */
-
- if (mandir_list) {
- debug ("is in the config file\n");
- while (mandir_list) {
- insert_override_dir (tmplist,
- mandir_list->cont);
- add_dir_to_list (tmplist, mandir_list->cont);
- mandir_list = iterate_over_list
- (mandir_list, p, MANPATH_MAP);
- }
-
- /* The directory we're working on isn't in the config file.
- See if it has ../man or man subdirectories.
- If so, and it hasn't been added to the list, do. */
-
- } else {
+ /* If the directory we're working on has MANPATH_MAP entries
+ * in the config file, add them to the list.
+ */
+ GL_LIST_FOREACH_START (config, config_item) {
+ if (MANPATH_MAP != config_item->flag ||
+ !STREQ (p, config_item->key))
+ continue;
+ if (!manpath_map_found)
+ debug ("is in the config file\n");
+ manpath_map_found = true;
+ insert_override_dir (tmplist, config_item->cont);
+ add_dir_to_list (tmplist, config_item->cont);
+ } GL_LIST_FOREACH_END (config);
+
+ /* The directory we're working on isn't in the config file.
+ See if it has ../man, man, ../share/man, or share/man
+ subdirectories. If so, and they haven't been added to
+ the list, do. */
+
+ if (!manpath_map_found) {
debug ("is not in the config file\n");
-
- t = has_mandir (p);
- if (t) {
- debug ("but does have a ../man, man, "
- "../share/man, or share/man "
- "subdirectory\n");
-
- insert_override_dir (tmplist, t);
- add_dir_to_list (tmplist, t);
- free (t);
- } else
- debug ("and doesn't have ../man, man, "
- "../share/man, or share/man "
- "subdirectories\n");
+ add_man_subdirs (tmplist, p);
}
}
@@ -1025,19 +1020,19 @@ char *get_manpath_from_path (const char *path, int mandatory)
if (mandatory) {
debug ("\nadding mandatory man directories\n\n");
- for (list = namestore; list; list = list->next)
- if (list->flag == MANDATORY) {
- insert_override_dir (tmplist, list->key);
- add_dir_to_list (tmplist, list->key);
+ GL_LIST_FOREACH_START (config, config_item) {
+ if (config_item->flag == MANDATORY) {
+ insert_override_dir (tmplist,
+ config_item->key);
+ add_dir_to_list (tmplist, config_item->key);
}
+ } GL_LIST_FOREACH_END (config);
}
len = 0;
- lp = tmplist;
- while (*lp != NULL) {
- len += strlen (*lp) + 1;
- lp++;
- }
+ GL_LIST_FOREACH_START (tmplist, item)
+ len += strlen (item) + 1;
+ GL_LIST_FOREACH_END (tmplist);
if (!len)
/* No path elements in configuration file or with
@@ -1048,38 +1043,29 @@ char *get_manpath_from_path (const char *path, int mandatory)
manpathlist = xmalloc (len);
*manpathlist = '\0';
- lp = tmplist;
p = manpathlist;
- while (*lp != NULL) {
- len = strlen (*lp);
- memcpy (p, *lp, len);
- free (*lp);
- *lp = NULL;
+ GL_LIST_FOREACH_START (tmplist, item) {
+ len = strlen (item);
+ memcpy (p, item, len);
p += len;
*p++ = ':';
- lp++;
- }
+ } GL_LIST_FOREACH_END (tmplist);
p[-1] = '\0';
+ gl_list_free (tmplist);
+
return manpathlist;
}
/* Add a directory to the manpath list if it isn't already there. */
-static void add_expanded_dir_to_list (char **lp, const char *dir)
+static void add_expanded_dir_to_list (gl_list_t list, const char *dir)
{
int status;
- int pos = 0;
-
- while (*lp != NULL) {
- if (pos > MAXDIRS - 1)
- gripe_overlong_list ();
- if (!strcmp (*lp, dir)) {
- debug ("%s is already in the manpath\n", dir);
- return;
- }
- lp++;
- pos++;
+
+ if (gl_list_search (list, dir)) {
+ debug ("%s is already in the manpath\n", dir);
+ return;
}
/* Not found -- add it. */
@@ -1092,8 +1078,7 @@ static void add_expanded_dir_to_list (char **lp, const char *dir)
gripe_not_directory (dir);
else if (status == 1) {
debug ("adding %s to manpath\n", dir);
-
- *lp = xstrdup (dir);
+ gl_list_add_last (list, xstrdup (dir));
}
}
@@ -1101,25 +1086,25 @@ static void add_expanded_dir_to_list (char **lp, const char *dir)
* Add a directory to the manpath list if it isn't already there, expanding
* wildcards.
*/
-static void add_dir_to_list (char **lp, const char *dir)
+static void add_dir_to_list (gl_list_t list, const char *dir)
{
- char **expanded_dirs;
- int i;
+ gl_list_t expanded_dirs;
+ const char *expanded_dir;
expanded_dirs = expand_path (dir);
- for (i = 0; expanded_dirs[i]; i++) {
- add_expanded_dir_to_list (lp, expanded_dirs[i]);
- free (expanded_dirs[i]);
- }
- free (expanded_dirs);
+ GL_LIST_FOREACH_START (expanded_dirs, expanded_dir)
+ add_expanded_dir_to_list (list, expanded_dir);
+ GL_LIST_FOREACH_END (expanded_dirs);
+ gl_list_free (expanded_dirs);
}
/* path does not exist in config file: check to see if path/../man,
- path/man, path/../share/man, or path/share/man exist. If so return
- it, if not return NULL. */
-static char *has_mandir (const char *path)
+ path/man, path/../share/man, or path/share/man exist, and add them to the
+ list if they do. */
+static void add_man_subdirs (gl_list_t list, const char *path)
{
char *newpath;
+ int found = 0;
/* don't assume anything about path, especially that it ends in
"bin" or even has a '/' in it! */
@@ -1127,113 +1112,126 @@ static char *has_mandir (const char *path)
char *subdir = strrchr (path, '/');
if (subdir) {
newpath = xasprintf ("%.*s/man", (int) (subdir - path), path);
- if (is_directory (newpath) == 1)
- return newpath;
+ if (is_directory (newpath) == 1) {
+ insert_override_dir (list, newpath);
+ add_dir_to_list (list, newpath);
+ found = 1;
+ }
free (newpath);
}
newpath = xasprintf ("%s/man", path);
- if (is_directory (newpath) == 1)
- return newpath;
+ if (is_directory (newpath) == 1) {
+ insert_override_dir (list, newpath);
+ add_dir_to_list (list, newpath);
+ found = 1;
+ }
free (newpath);
if (subdir) {
newpath = xasprintf ("%.*s/share/man",
(int) (subdir - path), path);
- if (is_directory (newpath) == 1)
- return newpath;
+ if (is_directory (newpath) == 1) {
+ insert_override_dir (list, newpath);
+ add_dir_to_list (list, newpath);
+ found = 1;
+ }
free (newpath);
}
newpath = xasprintf ("%s/share/man", path);
- if (is_directory (newpath) == 1)
- return newpath;
+ if (is_directory (newpath) == 1) {
+ insert_override_dir (list, newpath);
+ add_dir_to_list (list, newpath);
+ found = 1;
+ }
free (newpath);
- return NULL;
+ if (!found)
+ debug ("and doesn't have ../man, man, ../share/man, or "
+ "share/man subdirectories\n");
}
-static char **add_dir_to_path_list (char **mphead, char **mp, const char *p)
+static void add_dir_to_path_list (gl_list_t list, const char *p)
{
- int status, i;
- char *cwd, *d, **expanded_dirs;
-
- if (mp - mphead > MAXDIRS - 1)
- gripe_overlong_list ();
+ gl_list_t expanded_dirs;
+ char *expanded_dir;
expanded_dirs = expand_path (p);
- for (i = 0; expanded_dirs[i]; i++) {
- d = expanded_dirs[i];
-
- status = is_directory (d);
+ GL_LIST_FOREACH_START (expanded_dirs, expanded_dir) {
+ int status = is_directory (expanded_dir);
if (status < 0)
- gripe_stat_file (d);
+ gripe_stat_file (expanded_dir);
else if (status == 0)
- gripe_not_directory (d);
+ gripe_not_directory (expanded_dir);
else {
+ char *path;
+
/* deal with relative paths */
- if (*d != '/') {
- cwd = xgetcwd ();
+ if (*expanded_dir != '/') {
+ char *cwd = xgetcwd ();
if (!cwd)
error (FATAL, errno,
_("can't determine current directory"));
- *mp = appendstr (cwd, "/", d, (void *) 0);
+ path = appendstr (cwd, "/", expanded_dir,
+ (void *) 0);
} else
- *mp = xstrdup (d);
+ path = xstrdup (expanded_dir);
- debug ("adding %s to manpathlist\n", *mp);
- mp++;
+ debug ("adding %s to manpathlist\n", path);
+ gl_list_add_last (list, path);
}
- free (d);
- }
- free (expanded_dirs);
-
- return mp;
+ } GL_LIST_FOREACH_END (expanded_dirs);
+ gl_list_free (expanded_dirs);
}
-void create_pathlist (const char *manp, char **mp)
+gl_list_t create_pathlist (const char *manp)
{
+ gl_list_t list;
+ gl_list_iterator_t iter;
+ gl_list_node_t node;
const char *p, *end;
- char **mphead = mp;
/* Expand the manpath into a list for easier handling. */
+ list = new_string_list (GL_LINKEDHASH_LIST, true);
for (p = manp;; p = end + 1) {
end = strchr (p, ':');
if (end) {
char *element = xstrndup (p, end - p);
- mp = add_dir_to_path_list (mphead, mp, element);
+ add_dir_to_path_list (list, element);
free (element);
} else {
- mp = add_dir_to_path_list (mphead, mp, p);
+ add_dir_to_path_list (list, p);
break;
}
}
- *mp = NULL;
/* Eliminate duplicates due to symlinks. */
- mp = mphead;
- while (*mp) {
+ iter = gl_list_iterator (list);
+ while (gl_list_iterator_next (&iter, (const void **) &p, &node)) {
char *target;
- char **dupcheck;
- int found_dup = 0;
+ gl_list_iterator_t dupcheck_iter;
+ const char *dupcheck;
+ gl_list_node_t dupcheck_node;
/* After resolving all symlinks, is the target also in the
* manpath?
*/
- target = canonicalize_file_name (*mp);
- if (!target) {
- ++mp;
+ target = canonicalize_file_name (p);
+ if (!target)
continue;
- }
/* Only check up to the current list position, to keep item
* order stable across deduplication.
*/
- for (dupcheck = mphead; *dupcheck && dupcheck != mp;
- ++dupcheck) {
+ dupcheck_iter = gl_list_iterator (list);
+ while (gl_list_iterator_next (&dupcheck_iter,
+ (const void **) &dupcheck,
+ &dupcheck_node) &&
+ dupcheck_node != node) {
char *dupcheck_target = canonicalize_file_name
- (*dupcheck);
+ (dupcheck);
if (!dupcheck_target)
continue;
if (!STREQ (target, dupcheck_target)) {
@@ -1241,54 +1239,48 @@ void create_pathlist (const char *manp, char **mp)
continue;
}
free (dupcheck_target);
- debug ("Removing duplicate manpath entry %s (%td) -> "
- "%s (%td)\n",
- *mp, mp - mphead,
- *dupcheck, dupcheck - mphead);
- free (*mp);
- for (dupcheck = mp; *(dupcheck + 1); ++dupcheck)
- *dupcheck = *(dupcheck + 1);
- *dupcheck = NULL;
- found_dup = 1;
+ debug ("Removing duplicate manpath entry %s -> %s\n",
+ p, dupcheck);
+ gl_list_remove_node (list, node);
break;
}
+ gl_list_iterator_free (&dupcheck_iter);
free (target);
- if (!found_dup)
- ++mp;
}
+ gl_list_iterator_free (&iter);
if (debug_level) {
- int first = 1;
+ bool first = true;
debug ("final search path = ");
- for (mp = mphead; *mp; ++mp) {
+ GL_LIST_FOREACH_START (list, p) {
if (first) {
- debug ("%s", *mp);
- first = 0;
+ debug ("%s", p);
+ first = false;
} else
- debug (":%s", *mp);
- }
+ debug (":%s", p);
+ } GL_LIST_FOREACH_END (list);
debug ("\n");
}
+
+ return list;
}
-void free_pathlist (char **mp)
+void free_pathlist (gl_list_t list)
{
- while (*mp) {
- free (*mp);
- *mp++ = NULL;
- }
+ gl_list_free (list);
}
/* Routine to get list of named system and user manpaths (in reverse order). */
char *get_mandb_manpath (void)
{
char *manpath = NULL;
- struct list *list;
+ const struct config_item *item;
- for (list = namestore; list; list = list->next)
- if (list->flag == MANDB_MAP || list->flag == MANDB_MAP_USER)
- manpath = pathappend (manpath, list->key);
+ GL_LIST_FOREACH_START (config, item)
+ if (item->flag == MANDB_MAP || item->flag == MANDB_MAP_USER)
+ manpath = pathappend (manpath, item->key);
+ GL_LIST_FOREACH_END (config);
return manpath;
}
@@ -1308,16 +1300,17 @@ char *get_mandb_manpath (void)
*/
char *get_catpath (const char *name, int cattype)
{
- struct list *list;
-
- for (list = namestore; list; list = list->next)
- if (((cattype & SYSTEM_CAT) && list->flag == MANDB_MAP) ||
- ((cattype & USER_CAT) && list->flag == MANDB_MAP_USER)) {
- size_t manlen = strlen (list->key);
- if (STRNEQ (name, list->key, manlen)) {
+ const struct config_item *item;
+ char *ret = NULL;
+
+ GL_LIST_FOREACH_START (config, item)
+ if (((cattype & SYSTEM_CAT) && item->flag == MANDB_MAP) ||
+ ((cattype & USER_CAT) && item->flag == MANDB_MAP_USER)) {
+ size_t manlen = strlen (item->key);
+ if (STRNEQ (name, item->key, manlen)) {
const char *suffix;
char *infix;
- char *catpath = xstrdup (list->cont);
+ char *catpath = xstrdup (item->cont);
/* For NLS subdirectories (e.g.
* /usr/share/man/de -> /var/cache/man/de),
@@ -1325,10 +1318,12 @@ char *get_catpath (const char *name, int cattype)
* long as this strictly follows the key.
*/
suffix = strrchr (name, '/');
- if (!suffix)
- return appendstr (catpath,
- name + manlen,
- (void *) 0);
+ if (!suffix) {
+ ret = appendstr (catpath,
+ name + manlen,
+ (void *) 0);
+ break;
+ }
while (suffix > name + manlen)
if (*--suffix == '/')
@@ -1349,25 +1344,32 @@ char *get_catpath (const char *name, int cattype)
}
catpath = appendstr (catpath, suffix,
(void *) 0);
- return catpath;
+ ret = catpath;
+ break;
}
}
+ GL_LIST_FOREACH_END (config);
- return NULL;
+ return ret;
}
/* Check to see if the supplied man directory is a system-wide mandir.
* Obviously, user directories must not be included here.
*/
-int is_global_mandir (const char *dir)
+bool is_global_mandir (const char *dir)
{
- struct list *list;
+ const struct config_item *item;
+ bool ret = false;
+
+ GL_LIST_FOREACH_START (config, item)
+ if (item->flag == MANDB_MAP &&
+ STRNEQ (dir, item->key, strlen (item->key))) {
+ ret = true;
+ break;
+ }
+ GL_LIST_FOREACH_END (config);
- for (list = namestore; list; list = list->next)
- if (list->flag == MANDB_MAP &&
- STRNEQ (dir, list->key, strlen (list->key)))
- return 1;
- return 0;
+ return ret;
}
/* Accept a manpath (not a full pathname to a file) and return an FSSTND
diff --git a/src/manp.h b/src/manp.h
index 529bfa6f..676891b2 100644
--- a/src/manp.h
+++ b/src/manp.h
@@ -22,6 +22,10 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdbool.h>
+
+#include "gl_list.h"
+
struct locale_bits {
char *language;
char *territory;
@@ -36,12 +40,12 @@ extern void free_locale_bits (struct locale_bits *bits);
extern char *add_nls_manpaths (const char *manpathlist, const char *locales);
extern char *get_manpath (const char *systems);
extern char *get_manpath_from_path (const char *path, int mandatory);
-extern void create_pathlist (const char *manp, char **mp);
-extern void free_pathlist (char **mp);
+extern gl_list_t create_pathlist (const char *manp);
+extern void free_pathlist (gl_list_t list);
extern char *get_mandb_manpath (void);
extern char *get_catpath (const char *name, int cattype);
-extern int is_global_mandir (const char *dir);
-extern void read_config_file (int optional);
+extern bool is_global_mandir (const char *dir);
+extern void read_config_file (bool optional);
extern const char *get_def (const char *thing, const char *def);
extern const char *get_def_user (const char *thing, const char *def);
-extern const char **get_sections (void);
+extern gl_list_t get_sections (void);
diff --git a/src/manpath.c b/src/manpath.c
index de3a2948..97e27376 100644
--- a/src/manpath.c
+++ b/src/manpath.c
@@ -27,6 +27,7 @@
#include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -51,8 +52,8 @@
int quiet = 0;
man_sandbox *sandbox; /* unused, but needed by libman */
-static int cat = 0;
-static int global = 0;
+static bool cat = false;
+static bool global = false;
static const char *alt_system = "";
extern char *user_config_file;
@@ -75,14 +76,14 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key) {
case 'c':
- cat = 1;
+ cat = true;
return 0;
case 'g':
- global = 1;
+ global = true;
quiet = 1;
return 0;
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'q':
quiet = 1;
diff --git a/src/straycats.c b/src/straycats.c
index 51f66170..0f4c50ee 100644
--- a/src/straycats.c
+++ b/src/straycats.c
@@ -28,6 +28,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@@ -40,6 +41,8 @@
#include "canonicalize.h"
#include "dirname.h"
+#include "gl_array_list.h"
+#include "gl_xlist.h"
#include "gettext.h"
#define _(String) gettext (String)
@@ -47,6 +50,7 @@
#include "manconfig.h"
#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "decompress.h"
#include "encodings.h"
@@ -70,8 +74,8 @@ static int check_for_stray (MYDBM_FILE dbf)
{
DIR *cdir;
struct dirent *catlist;
- char **names;
- size_t names_len, names_max, i;
+ gl_list_t names;
+ const char *name;
size_t lenman, lencat;
int strays = 0;
@@ -81,30 +85,24 @@ static int check_for_stray (MYDBM_FILE dbf)
return 0;
}
- names_len = 0;
- names_max = 1024;
- names = XNMALLOC (names_max, char *);
+ names = new_string_list (GL_ARRAY_LIST, false);
while ((catlist = readdir (cdir)) != NULL) {
if (*catlist->d_name == '.' &&
strlen (catlist->d_name) < (size_t) 3)
continue;
- if (names_len >= names_max) {
- names_max *= 2;
- names = xnrealloc (names, names_max, sizeof (char *));
- }
- names[names_len++] = xstrdup (catlist->d_name);
+ gl_list_add_last (names, xstrdup (catlist->d_name));
}
closedir (cdir);
- order_files (catdir, names, names_len);
+ order_files (catdir, &names);
mandir = appendstr (mandir, "/", (void *) 0);
catdir = appendstr (catdir, "/", (void *) 0);
lenman = strlen (mandir);
lencat = strlen (catdir);
- for (i = 0; i < names_len; ++i) {
+ GL_LIST_FOREACH_START (names, name) {
struct mandata info;
char *ext, *section;
short found;
@@ -116,8 +114,8 @@ static int check_for_stray (MYDBM_FILE dbf)
memset (&info, 0, sizeof (struct mandata));
*(mandir + lenman) = *(catdir + lencat) = '\0';
- mandir = appendstr (mandir, names[i], (void *) 0);
- catdir = appendstr (catdir, names[i], (void *) 0);
+ mandir = appendstr (mandir, name, (void *) 0);
+ catdir = appendstr (catdir, name, (void *) 0);
ext = strrchr (mandir, '.');
if (!ext) {
@@ -126,7 +124,7 @@ static int check_for_stray (MYDBM_FILE dbf)
_("warning: %s: "
"ignoring bogus filename"),
catdir);
- goto next_name;
+ continue;
#if defined(COMP_SRC) || defined(COMP_CAT)
@@ -197,13 +195,9 @@ static int check_for_stray (MYDBM_FILE dbf)
further */
mandir_base = base_name (mandir);
exists = dblookup_exact (dbf, mandir_base, info.ext,
- 1);
-#ifndef FAVOUR_STRAYCATS
- if (exists && exists->id != WHATIS_CAT)
-#else /* FAVOUR_STRAYCATS */
- if (exists && exists->id != WHATIS_CAT &&
- exists->id != WHATIS_MAN)
-#endif /* !FAVOUR_STRAYCATS */
+ true);
+ if (exists &&
+ compare_ids (STRAY_CAT, exists->id, 0) >= 0)
goto next_exists;
debug ("%s(%s) is not in the db.\n",
mandir_base, info.ext);
@@ -270,17 +264,14 @@ static int check_for_stray (MYDBM_FILE dbf)
if (find_name_decompressed (decomp,
catdir_base,
&lg)) {
- struct page_description *descs;
+ gl_list_t descs;
strays++;
descs = parse_descriptions
(mandir_base, lg.whatis);
- if (descs) {
- store_descriptions
- (dbf, descs, &info,
- NULL, mandir_base,
- NULL);
- free_descriptions (descs);
- }
+ store_descriptions (dbf, descs, &info,
+ NULL, mandir_base,
+ NULL);
+ gl_list_free (descs);
} else if (quiet < 2)
error (0, 0, _("warning: %s: whatis parse for %s(%s) failed"),
catdir, mandir_base, info.sec);
@@ -295,10 +286,8 @@ next_exists:
}
next_section:
free (section);
-next_name:
- free (names[i]);
- }
- free (names);
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
return strays;
}
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
index 3c56222a..74cae23b 100644
--- a/src/tests/Makefile.in
+++ b/src/tests/Makefile.in
@@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -120,7 +121,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -164,7 +165,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \
diff --git a/src/ult_src.c b/src/ult_src.c
index 15c2e52b..2b0ba278 100644
--- a/src/ult_src.c
+++ b/src/ult_src.c
@@ -46,6 +46,7 @@
#include "canonicalize.h"
#include "dirname.h"
#include "error.h"
+#include "gl_xlist.h"
#include "xvasprintf.h"
#include "gettext.h"
@@ -205,43 +206,24 @@ static char *find_include (const char *name, const char *path,
} else {
/* Try globbing - the file suffix might be missing. */
char *temp_file_asterisk = xasprintf ("%s*", temp_file);
- char **candidate_files = expand_path (temp_file_asterisk);
- int i;
+ gl_list_t candidate_files = expand_path (temp_file_asterisk);
free (temp_file_asterisk);
- if (CAN_ACCESS (candidate_files[0], F_OK)) {
- free (ret);
- ret = canonicalize_file_name (candidate_files[0]);
+ if (gl_list_size (candidate_files)) {
+ const char *candidate_file = gl_list_get_at
+ (candidate_files, 0);
+ if (CAN_ACCESS (candidate_file, F_OK)) {
+ free (ret);
+ ret = canonicalize_file_name (candidate_file);
+ }
}
- for (i = 0; candidate_files[i]; i++)
- free (candidate_files[i]);
- free (candidate_files);
+ gl_list_free (candidate_files);
}
free (temp_file);
return ret;
}
-static void ult_trace (struct ult_trace *trace, const char *s)
-{
- if (!trace)
- return;
- if (trace->len >= trace->max) {
- trace->max *= 2;
- trace->names = xnrealloc (trace->names, trace->max,
- sizeof (char *));
- }
- trace->names[trace->len++] = xstrdup (s);
-}
-
-void free_ult_trace (struct ult_trace *trace)
-{
- size_t i;
- for (i = 0; i < trace->len; ++i)
- free (trace->names[i]);
- free (trace->names);
-}
-
/*
* recursive function which finds the ultimate source file by following
* any ".so filename" directives in the first line of the man pages.
@@ -251,21 +233,15 @@ void free_ult_trace (struct ult_trace *trace)
* flags is a combination of SO_LINK | SOFT_LINK | HARD_LINK
*/
const char *ult_src (const char *name, const char *path,
- struct stat *buf, int flags, struct ult_trace *trace)
+ struct stat *buf, int flags, gl_list_t trace)
{
static char *base; /* must be static */
static short recurse; /* must be static */
/* initialise the function */
- if (trace) {
- if (!trace->names) {
- trace->len = 0;
- trace->max = 16;
- trace->names = XNMALLOC (trace->max, char *);
- }
- ult_trace (trace, name);
- }
+ if (trace)
+ gl_list_add_last (trace, name);
/* as ult_softlink() & ult_hardlink() do all of their respective
* resolving in one call, only need to sort them out once
@@ -400,6 +376,6 @@ const char *ult_src (const char *name, const char *path,
/* We have the ultimate source */
if (trace)
- ult_trace (trace, base);
+ gl_list_add_last (trace, base);
return base;
}
diff --git a/src/ult_src.h b/src/ult_src.h
index 6fad4706..857700d4 100644
--- a/src/ult_src.h
+++ b/src/ult_src.h
@@ -22,22 +22,18 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "gl_list.h"
+
#define SO_LINK 0001
#define SOFT_LINK 0002
#define HARD_LINK 0004
-/* Trace of the link chain from a given file. Any names listed here should
- * not have WHATIS_MAN entries created for them.
- */
-struct ult_trace {
- char **names;
- size_t len;
- size_t max;
-};
-
struct stat;
+/* If ult_trace is non-NULL, it should be a gl_list_t of const char * which
+ * ult_src populates with the trace of the link chain from a given file.
+ * Any names listed here should not have WHATIS_MAN entries created for
+ * them.
+ */
extern const char *ult_src (const char *name, const char *path,
- struct stat *buf, int flags,
- struct ult_trace *trace);
-extern void free_ult_trace (struct ult_trace *trace);
+ struct stat *buf, int flags, gl_list_t trace);
diff --git a/src/whatis.c b/src/whatis.c
index ee43f10a..8b648121 100644
--- a/src/whatis.c
+++ b/src/whatis.c
@@ -34,6 +34,7 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
@@ -56,6 +57,9 @@
#include "argp.h"
#include "dirname.h"
+#include "gl_hash_set.h"
+#include "gl_list.h"
+#include "gl_xset.h"
#include "fnmatch.h"
#include "progname.h"
#include "xvasprintf.h"
@@ -64,11 +68,10 @@
#include "cleanup.h"
#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "pathsearch.h"
#include "linelength.h"
-#include "hashtable.h"
-#include "lower.h"
#include "wordfnmatch.h"
#include "xregcomp.h"
#include "encodings.h"
@@ -79,13 +82,13 @@
#include "manp.h"
-static char *manpathlist[MAXDIRS];
+static gl_list_t manpathlist;
extern char *user_config_file;
static char **keywords;
static int num_keywords;
-int am_apropos;
+bool am_apropos;
char *database;
int quiet = 1;
man_sandbox *sandbox;
@@ -95,14 +98,14 @@ iconv_t conv_to_locale;
#endif /* HAVE_ICONV */
static regex_t *preg;
-static int regex_opt;
-static int exact;
+static bool regex_opt;
+static bool exact;
-static int wildcard;
+static bool wildcard;
-static int require_all;
+static bool require_all;
-static int long_output;
+static bool long_output;
static char **sections;
@@ -111,7 +114,7 @@ static const char *alt_systems = "";
static const char *locale = NULL;
static char *multiple_locale = NULL, *internal_locale;
-static struct hashtable *display_seen = NULL;
+static gl_set_t display_seen = NULL;
const char *argp_program_version; /* initialised in main */
const char *argp_program_bug_address = PACKAGE_BUGREPORT;
@@ -167,33 +170,33 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
{
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'v':
quiet = 0;
return 0;
case 'r':
- regex_opt = 1;
+ regex_opt = true;
return 0;
case 'e':
/* Only makes sense for apropos, but has
* historically been accepted by whatis anyway.
*/
- regex_opt = 0;
- exact = 1;
+ regex_opt = false;
+ exact = true;
return 0;
case 'w':
- regex_opt = 0;
- wildcard = 1;
+ regex_opt = false;
+ wildcard = true;
return 0;
case 'a':
if (am_apropos)
- require_all = 1;
+ require_all = true;
else
argp_usage (state);
return 0;
case 'l':
- long_output = 1;
+ long_output = true;
return 0;
case 's':
sections = split_sections (arg);
@@ -212,11 +215,11 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
return 0;
case 'f':
/* helpful override if program name detection fails */
- am_apropos = 0;
+ am_apropos = false;
return 0;
case 'k':
/* helpful override if program name detection fails */
- am_apropos = 1;
+ am_apropos = true;
return 0;
case 'h':
argp_state_help (state, state->out_stream,
@@ -233,7 +236,7 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
exit (FAIL);
case ARGP_KEY_SUCCESS:
if (am_apropos && !exact && !wildcard)
- regex_opt = 1;
+ regex_opt = true;
return 0;
}
return ARGP_ERR_UNKNOWN;
@@ -321,7 +324,7 @@ static char *simple_convert (iconv_t conv, char *string)
* legacy mechanism.
*/
static void use_grep (const char * const *pages, int num_pages, char *manpath,
- int *found)
+ bool *found)
{
char *whatis_file = xasprintf ("%s/whatis", manpath);
@@ -361,7 +364,7 @@ static void use_grep (const char * const *pages, int num_pages, char *manpath,
grep_pl = pipeline_new_commands (grep_cmd, (void *) 0);
if (pipeline_run (grep_pl) == 0)
- found[i] = 1;
+ found[i] = true;
free (anchored_page);
}
@@ -387,7 +390,7 @@ static struct mandata *resolve_pointers (MYDBM_FILE dbf, struct mandata *info,
* arbitrary: it's just there to avoid an infinite loop.
*/
newpage = info->pointer;
- info = dblookup_exact (dbf, newpage, info->ext, 1);
+ info = dblookup_exact (dbf, newpage, info->ext, true);
for (rounds = 0; rounds < 10; rounds++) {
struct mandata *newinfo;
@@ -400,7 +403,7 @@ static struct mandata *resolve_pointers (MYDBM_FILE dbf, struct mandata *info,
STREQ (info->pointer, newpage)))
return info;
- newinfo = dblookup_exact (dbf, info->pointer, info->ext, 1);
+ newinfo = dblookup_exact (dbf, info->pointer, info->ext, true);
free_mandata_struct (info);
info = newinfo;
}
@@ -451,9 +454,9 @@ static void display (MYDBM_FILE dbf, struct mandata *info, const char *page)
page_name = page;
key = xasprintf ("%s (%s)", page_name, newinfo->ext);
- if (hashtable_lookup_structure (display_seen, key, strlen (key)))
+ if (gl_set_search (display_seen, key))
goto out;
- hashtable_install (display_seen, key, strlen (key), NULL);
+ gl_set_add (display_seen, xstrdup (key));
line_len = get_line_length ();
@@ -499,56 +502,45 @@ out:
static int do_whatis_section (MYDBM_FILE dbf,
const char *page, const char *section)
{
+ gl_list_t infos;
struct mandata *info;
int count = 0;
- info = dblookup_all (dbf, page, section, 0);
- while (info) {
- struct mandata *pinfo;
-
+ infos = dblookup_all (dbf, page, section, false);
+ GL_LIST_FOREACH_START (infos, info) {
display (dbf, info, page);
count++;
- pinfo = info->next; /* go on to next structure */
- free_mandata_elements (info);
- free (info);
- info = pinfo;
- }
+ } GL_LIST_FOREACH_END (infos);
+ gl_list_free (infos);
return count;
}
-static int suitable_manpath (const char *manpath, const char *page_dir)
+static bool suitable_manpath (const char *manpath, const char *page_dir)
{
char *page_manp, *pm;
- char *page_manpathlist[MAXDIRS], **mp;
- int ret;
+ gl_list_t page_manpathlist;
+ bool ret;
page_manp = get_manpath_from_path (page_dir, 0);
if (!page_manp || !*page_manp) {
free (page_manp);
- return 0;
+ return false;
}
pm = locale_manpath (page_manp);
free (page_manp);
page_manp = pm;
- create_pathlist (page_manp, page_manpathlist);
+ page_manpathlist = create_pathlist (page_manp);
- ret = 0;
- for (mp = page_manpathlist; *mp; ++mp) {
- if (STREQ (*mp, manpath)) {
- ret = 1;
- break;
- }
- }
+ ret = gl_list_search (page_manpathlist, manpath) ? true : false;
- for (mp = page_manpathlist; *mp; ++mp)
- free (*mp);
+ free_pathlist (page_manpathlist);
free (page_manp);
return ret;
}
static void do_whatis (MYDBM_FILE dbf,
const char * const *pages, int num_pages,
- const char *manpath, int *found)
+ const char *manpath, bool *found)
{
int i;
@@ -586,39 +578,39 @@ static void do_whatis (MYDBM_FILE dbf,
for (section = sections; *section; ++section) {
if (do_whatis_section (dbf, page, *section))
- found[i] = 1;
+ found[i] = true;
}
} else {
if (do_whatis_section (dbf, page, NULL))
- found[i] = 1;
+ found[i] = true;
}
free (page);
}
}
-static int any_set (int num_pages, int *found_here)
+static bool any_set (int num_pages, bool *found_here)
{
int i;
for (i = 0; i < num_pages; ++i)
if (found_here[i])
- return 1;
- return 0;
+ return true;
+ return false;
}
-static int all_set (int num_pages, int *found_here)
+static bool all_set (int num_pages, bool *found_here)
{
int i;
for (i = 0; i < num_pages; ++i)
if (!found_here[i])
- return 0;
- return 1;
+ return false;
+ return true;
}
static void parse_name (const char * const *pages, int num_pages,
- const char *dbname, int *found, int *found_here)
+ const char *dbname, bool *found, bool *found_here)
{
int i;
@@ -626,57 +618,50 @@ static void parse_name (const char * const *pages, int num_pages,
for (i = 0; i < num_pages; ++i) {
if (regexec (&preg[i], dbname, 0,
(regmatch_t *) 0, 0) == 0)
- found[i] = found_here[i] = 1;
+ found[i] = found_here[i] = true;
}
return;
}
if (am_apropos && !wildcard) {
- char *lowdbname = lower (dbname);
-
for (i = 0; i < num_pages; ++i) {
- if (STREQ (lowdbname, pages[i]))
- found[i] = found_here[i] = 1;
+ if (strcasecmp (dbname, pages[i]) == 0)
+ found[i] = found_here[i] = true;
}
- free (lowdbname);
return;
}
for (i = 0; i < num_pages; ++i) {
- if (fnmatch (pages[i], dbname, 0) == 0)
- found[i] = found_here[i] = 1;
+ if (fnmatch (pages[i], dbname, FNM_CASEFOLD) == 0)
+ found[i] = found_here[i] = true;
}
}
-/* return 1 on word match */
-static int match (const char *lowpage, const char *whatis)
+/* return true on word match */
+static bool match (const char *page, const char *whatis)
{
- char *lowwhatis = lower (whatis);
- size_t len = strlen (lowpage);
- char *p, *begin;
+ size_t len = strlen (page);
+ const char *begin;
+ char *p;
- begin = lowwhatis;
+ begin = whatis;
/* check for string match, then see if it is a _word_ */
- while (lowwhatis && (p = strstr (lowwhatis, lowpage))) {
+ while (whatis && (p = strcasestr (whatis, page))) {
char *left = p - 1;
char *right = p + len;
- if ((p == begin || (!CTYPE (islower, *left) && *left != '_')) &&
- (!*right || (!CTYPE (islower, *right) && *right != '_'))) {
- free (begin);
- return 1;
- }
- lowwhatis = p + 1;
+ if ((p == begin || (!CTYPE (isalpha, *left) && *left != '_')) &&
+ (!*right || (!CTYPE (isalpha, *right) && *right != '_')))
+ return true;
+ whatis = p + 1;
}
- free (begin);
- return 0;
+ return false;
}
-static void parse_whatis (const char * const *pages, char * const *lowpages,
- int num_pages, const char *whatis,
- int *found, int *found_here)
+static void parse_whatis (const char * const *pages, int num_pages,
+ const char *whatis, bool *found, bool *found_here)
{
int i;
@@ -684,7 +669,7 @@ static void parse_whatis (const char * const *pages, char * const *lowpages,
for (i = 0; i < num_pages; ++i) {
if (regexec (&preg[i], whatis, 0,
(regmatch_t *) 0, 0) == 0)
- found[i] = found_here[i] = 1;
+ found[i] = found_here[i] = true;
}
return;
}
@@ -693,18 +678,18 @@ static void parse_whatis (const char * const *pages, char * const *lowpages,
for (i = 0; i < num_pages; ++i) {
if (exact) {
if (fnmatch (pages[i], whatis, 0) == 0)
- found[i] = found_here[i] = 1;
+ found[i] = found_here[i] = true;
} else {
if (word_fnmatch (pages[i], whatis))
- found[i] = found_here[i] = 1;
+ found[i] = found_here[i] = true;
}
}
return;
}
for (i = 0; i < num_pages; ++i) {
- if (match (lowpages[i], whatis))
- found[i] = found_here[i] = 1;
+ if (match (pages[i], whatis))
+ found[i] = found_here[i] = true;
}
}
@@ -715,25 +700,18 @@ static void parse_whatis (const char * const *pages, char * const *lowpages,
/* scan for the page, print any matches */
static void do_apropos (MYDBM_FILE dbf,
- const char * const *pages, int num_pages, int *found)
+ const char * const *pages, int num_pages, bool *found)
{
datum key, cont;
- char **lowpages;
- int *found_here;
- int (*combine) (int, int *);
- int i;
+ bool *found_here;
+ bool (*combine) (int, bool *);
#ifndef BTREE
datum nextkey;
#else /* BTREE */
int end;
#endif /* !BTREE */
- lowpages = XNMALLOC (num_pages, char *);
- for (i = 0; i < num_pages; ++i) {
- lowpages[i] = lower (pages[i]);
- debug ("lower(%s) = \"%s\"\n", pages[i], lowpages[i]);
- }
- found_here = XNMALLOC (num_pages, int);
+ found_here = XNMALLOC (num_pages, bool);
combine = require_all ? all_set : any_set;
#ifndef BTREE
@@ -797,19 +775,17 @@ static void do_apropos (MYDBM_FILE dbf,
*tab = '\0';
memset (found_here, 0, num_pages * sizeof (*found_here));
+ parse_name (pages, num_pages,
+ MYDBM_DPTR (key), found, found_here);
if (am_apropos) {
char *whatis;
- parse_name ((const char **) lowpages, num_pages,
- MYDBM_DPTR (key), found, found_here);
whatis = info.whatis ? xstrdup (info.whatis) : NULL;
if (!combine (num_pages, found_here) && whatis)
- parse_whatis (pages, lowpages, num_pages,
+ parse_whatis (pages, num_pages,
whatis, found, found_here);
free (whatis);
- } else
- parse_name (pages, num_pages,
- MYDBM_DPTR (key), found, found_here);
+ }
if (combine (num_pages, found_here))
display (dbf, &info, MYDBM_DPTR (key));
@@ -831,31 +807,28 @@ nextpage:
}
free (found_here);
-
- for (i = 0; i < num_pages; ++i)
- free (lowpages[i]);
- free (lowpages);
}
/* loop through the man paths, searching for a match */
-static int search (const char * const *pages, int num_pages)
+static bool search (const char * const *pages, int num_pages)
{
- int *found = XCALLOC (num_pages, int);
- char *catpath, **mp;
- int any_found, i;
+ bool *found = XCALLOC (num_pages, bool);
+ char *catpath, *mp;
+ bool any_found;
+ int i;
- for (mp = manpathlist; *mp; mp++) {
+ GL_LIST_FOREACH_START (manpathlist, mp) {
MYDBM_FILE dbf;
- catpath = get_catpath (*mp, SYSTEM_CAT | USER_CAT);
+ catpath = get_catpath (mp, SYSTEM_CAT | USER_CAT);
if (catpath) {
database = mkdbname (catpath);
free (catpath);
} else
- database = mkdbname (*mp);
+ database = mkdbname (mp);
- debug ("path=%s\n", *mp);
+ debug ("path=%s\n", mp);
dbf = MYDBM_RDOPEN (database);
if (dbf && dbver_rd (dbf)) {
@@ -863,7 +836,7 @@ static int search (const char * const *pages, int num_pages)
dbf = NULL;
}
if (!dbf) {
- use_grep (pages, num_pages, *mp, found);
+ use_grep (pages, num_pages, mp, found);
continue;
}
@@ -873,19 +846,19 @@ static int search (const char * const *pages, int num_pages)
if (regex_opt || wildcard)
do_apropos (dbf, pages, num_pages, found);
else
- do_whatis (dbf, pages, num_pages, *mp, found);
+ do_whatis (dbf, pages, num_pages, mp, found);
}
free (database);
database = NULL;
MYDBM_CLOSE (dbf);
- }
+ } GL_LIST_FOREACH_END (manpathlist);
chkr_garbage_detector ();
- any_found = 0;
+ any_found = false;
for (i = 0; i < num_pages; ++i) {
if (found[i])
- any_found = 1;
+ any_found = true;
else
fprintf (stderr, _("%s: nothing appropriate.\n"),
pages[i]);
@@ -906,11 +879,11 @@ int main (int argc, char *argv[])
set_program_name (argv[0]);
program_base_name = base_name (program_name);
if (STREQ (program_base_name, APROPOS_NAME)) {
- am_apropos = 1;
+ am_apropos = true;
argp_program_version = "apropos " PACKAGE_VERSION;
} else {
struct argp_option *optionp;
- am_apropos = 0;
+ am_apropos = false;
argp_program_version = "whatis " PACKAGE_VERSION;
for (optionp = (struct argp_option *) whatis_argp.options;
optionp->name || optionp->key || optionp->arg ||
@@ -969,9 +942,9 @@ int main (int argc, char *argv[])
else
free (get_manpath (NULL));
- create_pathlist (manp, manpathlist);
+ manpathlist = create_pathlist (manp);
- display_seen = hashtable_create (&null_hashtable_free);
+ display_seen = new_string_set (GL_HASH_SET);
#ifdef HAVE_ICONV
locale_charset = xasprintf ("%s//IGNORE", get_locale_charset ());
@@ -1001,9 +974,10 @@ int main (int argc, char *argv[])
if (conv_to_locale != (iconv_t) -1)
iconv_close (conv_to_locale);
#endif /* HAVE_ICONV */
- hashtable_free (display_seen);
+ gl_set_free (display_seen);
free_pathlist (manpathlist);
free (manp);
free (internal_locale);
+ sandbox_free (sandbox);
exit (status);
}
diff --git a/src/zsoelim.c b/src/zsoelim.c
index a7225f64..b2e62052 100644
--- a/src/zsoelim.c
+++ b/src/zsoelim.c
@@ -816,6 +816,8 @@ char *yytext;
#define PIPE so_pipe[so_stack_ptr]
#include "dirname.h"
+#include "gl_linkedhash_list.h"
+#include "gl_xlist.h"
#include "xgetcwd.h"
#include "xvasprintf.h"
@@ -826,6 +828,7 @@ char *yytext;
#include "manconfig.h"
#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "decompress.h"
@@ -845,12 +848,12 @@ static int so_line[MAX_SO_DEPTH];
static pipeline *so_pipe[MAX_SO_DEPTH];
static int so_stack_ptr;
static int no_newline;
-static char * const *so_manpathlist;
+static gl_list_t so_manpathlist;
static const char *so_parent_path;
struct zsoelim_stdin_data {
char *path;
- char * const *manpathlist;
+ gl_list_t manpathlist;
};
/* The flex documentation says that yyin is only used by YY_INPUT, so we
@@ -868,9 +871,9 @@ struct zsoelim_stdin_data {
result = YY_NULL; \
}
#define YY_NO_INPUT
-#line 872 "zsoelim.c"
+#line 875 "zsoelim.c"
-#line 874 "zsoelim.c"
+#line 877 "zsoelim.c"
#define INITIAL 0
#define so 1
@@ -1093,10 +1096,10 @@ YY_DECL
}
{
-#line 128 "zsoelim.l"
+#line 131 "zsoelim.l"
-#line 1100 "zsoelim.c"
+#line 1103 "zsoelim.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1144,7 +1147,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 130 "zsoelim.l"
+#line 133 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1153,7 +1156,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 136 "zsoelim.l"
+#line 139 "zsoelim.l"
{
no_newline = 1;
BEGIN (so); /* Now we're in the .so environment */
@@ -1161,7 +1164,7 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 141 "zsoelim.l"
+#line 144 "zsoelim.l"
{
no_newline = 1;
ECHO; /* Now we're in the .lf environment */
@@ -1169,26 +1172,26 @@ YY_RULE_SETUP
}
YY_BREAK
case 4:
-#line 148 "zsoelim.l"
+#line 151 "zsoelim.l"
case 5:
/* rule 5 can match eol */
-#line 149 "zsoelim.l"
+#line 152 "zsoelim.l"
case 6:
/* rule 6 can match eol */
-#line 150 "zsoelim.l"
+#line 153 "zsoelim.l"
case 7:
/* rule 7 can match eol */
-#line 151 "zsoelim.l"
+#line 154 "zsoelim.l"
case 8:
/* rule 8 can match eol */
-#line 152 "zsoelim.l"
+#line 155 "zsoelim.l"
case 9:
/* rule 9 can match eol */
-#line 153 "zsoelim.l"
+#line 156 "zsoelim.l"
case 10:
/* rule 10 can match eol */
YY_RULE_SETUP
-#line 153 "zsoelim.l"
+#line 156 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1197,7 +1200,7 @@ YY_RULE_SETUP
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 158 "zsoelim.l"
+#line 161 "zsoelim.l"
{
no_newline = 0;
putchar ('\n');
@@ -1206,7 +1209,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 165 "zsoelim.l"
+#line 168 "zsoelim.l"
{ /* file names including whitespace ? */
if (so_stack_ptr == MAX_SO_DEPTH - 1)
error (FATAL, 0,
@@ -1242,7 +1245,7 @@ YY_RULE_SETUP
case 13:
/* rule 13 can match eol */
YY_RULE_SETUP
-#line 197 "zsoelim.l"
+#line 200 "zsoelim.l"
{
no_newline = 0;
BEGIN (INITIAL);
@@ -1251,7 +1254,7 @@ YY_RULE_SETUP
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 202 "zsoelim.l"
+#line 205 "zsoelim.l"
{
no_newline = 0;
error (OK, 0,
@@ -1265,7 +1268,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 213 "zsoelim.l"
+#line 216 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1274,7 +1277,7 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 219 "zsoelim.l"
+#line 222 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1283,7 +1286,7 @@ YY_RULE_SETUP
case 17:
/* rule 17 can match eol */
YY_RULE_SETUP
-#line 224 "zsoelim.l"
+#line 227 "zsoelim.l"
{
no_newline = 0;
putchar ('\n');
@@ -1292,7 +1295,7 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 231 "zsoelim.l"
+#line 234 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1303,7 +1306,7 @@ YY_RULE_SETUP
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 239 "zsoelim.l"
+#line 242 "zsoelim.l"
{ /* file names including whitespace ?? */
no_newline = 1;
ECHO;
@@ -1317,7 +1320,7 @@ YY_RULE_SETUP
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 250 "zsoelim.l"
+#line 253 "zsoelim.l"
{
no_newline = 1;
ECHO;
@@ -1326,7 +1329,7 @@ YY_RULE_SETUP
case 21:
/* rule 21 can match eol */
YY_RULE_SETUP
-#line 255 "zsoelim.l"
+#line 258 "zsoelim.l"
{
no_newline = 0;
putchar ('\n');
@@ -1336,7 +1339,7 @@ YY_RULE_SETUP
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 262 "zsoelim.l"
+#line 265 "zsoelim.l"
{
no_newline = 1;
error (OK, 0,
@@ -1350,7 +1353,7 @@ YY_RULE_SETUP
case 23:
/* rule 23 can match eol */
YY_RULE_SETUP
-#line 272 "zsoelim.l"
+#line 275 "zsoelim.l"
{
no_newline = 0;
error (OK, 0,
@@ -1368,14 +1371,13 @@ case YY_STATE_EOF(de):
case YY_STATE_EOF(end_request):
case YY_STATE_EOF(lfnumber):
case YY_STATE_EOF(lfname):
-#line 283 "zsoelim.l"
+#line 286 "zsoelim.l"
{
pipeline_wait (PIPE);
pipeline_free (PIPE);
PIPE = NULL;
free (NAME);
NAME = NULL;
- so_manpathlist = NULL;
if (no_newline)
putchar ('\n');
@@ -1393,10 +1395,10 @@ case YY_STATE_EOF(lfname):
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 304 "zsoelim.l"
+#line 306 "zsoelim.l"
ECHO;
YY_BREAK
-#line 1400 "zsoelim.c"
+#line 1402 "zsoelim.c"
case YY_END_OF_BUFFER:
{
@@ -2355,7 +2357,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 304 "zsoelim.l"
+#line 306 "zsoelim.l"
#ifdef ACCEPT_QUOTES
@@ -2375,7 +2377,7 @@ static void zap_quotes (void)
#endif
/* initialise the stack and call the parser */
-void zsoelim_parse_file (char * const *manpathlist, const char *parent_path)
+void zsoelim_parse_file (gl_list_t manpathlist, const char *parent_path)
{
#ifdef PP_COOKIE
const char *line;
@@ -2432,11 +2434,10 @@ static pipeline *try_compressed (char **filename)
/* This routine is used to open the specified file or uncompress a compressed
version and open that instead */
-int zsoelim_open_file (const char *filename, char * const *manpathlist,
+int zsoelim_open_file (const char *filename, gl_list_t manpathlist,
const char *parent_path)
{
pipeline *decomp;
- char * const *mp;
if (parent_path)
debug ("opening %s (parent path: %s)\n",
@@ -2449,6 +2450,7 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
NAME = xstrdup (filename);
} else {
char *compfile;
+ const char *mp;
/* If there is no parent path, try opening directly first. */
if (!parent_path) {
@@ -2462,7 +2464,7 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
free (compfile);
}
- if (manpathlist && strchr (filename, '/')) {
+ if (strchr (filename, '/')) {
/* File name with a directory part. Try looking it
* up within each manpath entry.
*/
@@ -2479,11 +2481,11 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
free (compfile);
}
- for (mp = manpathlist; *mp; ++mp) {
- if (parent_path && STREQ (*mp, parent_path))
+ GL_LIST_FOREACH_START (manpathlist, mp) {
+ if (parent_path && STREQ (mp, parent_path))
continue;
- compfile = xasprintf ("%s/%s.", *mp, filename);
+ compfile = xasprintf ("%s/%s.", mp, filename);
decomp = try_compressed (&compfile);
if (decomp) {
@@ -2492,14 +2494,14 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
}
free (compfile);
- }
- } else if (manpathlist) {
+ } GL_LIST_FOREACH_END (manpathlist);
+ } else {
/* File name with no directory part. Try searching
* the manpath.
*/
char *name, *sec, *dot;
- char **names;
- char **np;
+ gl_list_t names;
+ const char *found_name;
name = xstrdup (filename);
dot = strchr (name, '.');
@@ -2516,29 +2518,34 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
if (parent_path) {
names = look_for_file (parent_path, sec, name,
0, LFF_MATCHCASE);
- for (np = names; np && *np; ++np) {
- decomp = decompress_open (*np);
+ GL_LIST_FOREACH_START (names, found_name) {
+ decomp = decompress_open (found_name);
if (decomp) {
- NAME = xstrdup (*np);
+ NAME = xstrdup (found_name);
+ gl_list_free (names);
goto out;
}
- }
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
}
- for (mp = manpathlist; *mp; ++mp) {
- if (parent_path && STREQ (*mp, parent_path))
+ GL_LIST_FOREACH_START (manpathlist, mp) {
+ if (parent_path && STREQ (mp, parent_path))
continue;
- names = look_for_file (*mp, sec, name,
+ names = look_for_file (mp, sec, name,
0, LFF_MATCHCASE);
- for (np = names; np && *np; ++np) {
- decomp = decompress_open (*np);
+ GL_LIST_FOREACH_START (names, found_name) {
+ decomp = decompress_open (found_name);
if (decomp) {
- NAME = xstrdup (*np);
+ NAME = xstrdup (found_name);
+ gl_list_free (names);
+ free (name);
goto out;
}
- }
- }
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
+ } GL_LIST_FOREACH_END (manpathlist);
free (name);
}
@@ -2575,13 +2582,17 @@ out:
void zsoelim_stdin (void *data)
{
struct zsoelim_stdin_data *zsoelim_data = data;
+ gl_list_t empty;
- zsoelim_open_file ("-", NULL, zsoelim_data->path);
+ empty = gl_list_create_empty (GL_LINKEDHASH_LIST, NULL, NULL, NULL,
+ true);
+ zsoelim_open_file ("-", empty, zsoelim_data->path);
+ gl_list_free (empty);
zsoelim_parse_file (zsoelim_data->manpathlist, zsoelim_data->path);
}
struct zsoelim_stdin_data *zsoelim_stdin_data_new (const char *path,
- char * const *manpathlist)
+ gl_list_t manpathlist)
{
struct zsoelim_stdin_data *data = XMALLOC (struct zsoelim_stdin_data);
diff --git a/src/zsoelim.h b/src/zsoelim.h
index f17c08e8..4aaf53d6 100644
--- a/src/zsoelim.h
+++ b/src/zsoelim.h
@@ -20,13 +20,15 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-int zsoelim_open_file (const char *filename, char * const *manpathlist,
+#include "gl_list.h"
+
+int zsoelim_open_file (const char *filename, gl_list_t manpathlist,
const char *parent_path);
-void zsoelim_parse_file (char * const *manpathlist, const char *parent_path);
+void zsoelim_parse_file (gl_list_t manpathlist, const char *parent_path);
struct zsoelim_stdin_data;
void zsoelim_stdin (void *data);
struct zsoelim_stdin_data *zsoelim_stdin_data_new (const char *path,
- char * const *manpathlist);
+ gl_list_t manpathlist);
void zsoelim_stdin_data_free (void *data);
diff --git a/src/zsoelim.l b/src/zsoelim.l
index b3dc7807..346dfbd3 100644
--- a/src/zsoelim.l
+++ b/src/zsoelim.l
@@ -59,6 +59,8 @@
#define PIPE so_pipe[so_stack_ptr]
#include "dirname.h"
+#include "gl_linkedhash_list.h"
+#include "gl_xlist.h"
#include "xgetcwd.h"
#include "xvasprintf.h"
@@ -69,6 +71,7 @@
#include "manconfig.h"
#include "error.h"
+#include "glcontainers.h"
#include "pipeline.h"
#include "decompress.h"
@@ -88,12 +91,12 @@ static int so_line[MAX_SO_DEPTH];
static pipeline *so_pipe[MAX_SO_DEPTH];
static int so_stack_ptr;
static int no_newline;
-static char * const *so_manpathlist;
+static gl_list_t so_manpathlist;
static const char *so_parent_path;
struct zsoelim_stdin_data {
char *path;
- char * const *manpathlist;
+ gl_list_t manpathlist;
};
/* The flex documentation says that yyin is only used by YY_INPUT, so we
@@ -286,7 +289,6 @@ W [ \t]
PIPE = NULL;
free (NAME);
NAME = NULL;
- so_manpathlist = NULL;
if (no_newline)
putchar ('\n');
@@ -320,7 +322,7 @@ static void zap_quotes (void)
#endif
/* initialise the stack and call the parser */
-void zsoelim_parse_file (char * const *manpathlist, const char *parent_path)
+void zsoelim_parse_file (gl_list_t manpathlist, const char *parent_path)
{
#ifdef PP_COOKIE
const char *line;
@@ -377,11 +379,10 @@ static pipeline *try_compressed (char **filename)
/* This routine is used to open the specified file or uncompress a compressed
version and open that instead */
-int zsoelim_open_file (const char *filename, char * const *manpathlist,
+int zsoelim_open_file (const char *filename, gl_list_t manpathlist,
const char *parent_path)
{
pipeline *decomp;
- char * const *mp;
if (parent_path)
debug ("opening %s (parent path: %s)\n",
@@ -394,6 +395,7 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
NAME = xstrdup (filename);
} else {
char *compfile;
+ const char *mp;
/* If there is no parent path, try opening directly first. */
if (!parent_path) {
@@ -407,7 +409,7 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
free (compfile);
}
- if (manpathlist && strchr (filename, '/')) {
+ if (strchr (filename, '/')) {
/* File name with a directory part. Try looking it
* up within each manpath entry.
*/
@@ -424,11 +426,11 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
free (compfile);
}
- for (mp = manpathlist; *mp; ++mp) {
- if (parent_path && STREQ (*mp, parent_path))
+ GL_LIST_FOREACH_START (manpathlist, mp) {
+ if (parent_path && STREQ (mp, parent_path))
continue;
- compfile = xasprintf ("%s/%s.", *mp, filename);
+ compfile = xasprintf ("%s/%s.", mp, filename);
decomp = try_compressed (&compfile);
if (decomp) {
@@ -437,14 +439,14 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
}
free (compfile);
- }
- } else if (manpathlist) {
+ } GL_LIST_FOREACH_END (manpathlist);
+ } else {
/* File name with no directory part. Try searching
* the manpath.
*/
char *name, *sec, *dot;
- char **names;
- char **np;
+ gl_list_t names;
+ const char *found_name;
name = xstrdup (filename);
dot = strchr (name, '.');
@@ -461,29 +463,34 @@ int zsoelim_open_file (const char *filename, char * const *manpathlist,
if (parent_path) {
names = look_for_file (parent_path, sec, name,
0, LFF_MATCHCASE);
- for (np = names; np && *np; ++np) {
- decomp = decompress_open (*np);
+ GL_LIST_FOREACH_START (names, found_name) {
+ decomp = decompress_open (found_name);
if (decomp) {
- NAME = xstrdup (*np);
+ NAME = xstrdup (found_name);
+ gl_list_free (names);
goto out;
}
- }
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
}
- for (mp = manpathlist; *mp; ++mp) {
- if (parent_path && STREQ (*mp, parent_path))
+ GL_LIST_FOREACH_START (manpathlist, mp) {
+ if (parent_path && STREQ (mp, parent_path))
continue;
- names = look_for_file (*mp, sec, name,
+ names = look_for_file (mp, sec, name,
0, LFF_MATCHCASE);
- for (np = names; np && *np; ++np) {
- decomp = decompress_open (*np);
+ GL_LIST_FOREACH_START (names, found_name) {
+ decomp = decompress_open (found_name);
if (decomp) {
- NAME = xstrdup (*np);
+ NAME = xstrdup (found_name);
+ gl_list_free (names);
+ free (name);
goto out;
}
- }
- }
+ } GL_LIST_FOREACH_END (names);
+ gl_list_free (names);
+ } GL_LIST_FOREACH_END (manpathlist);
free (name);
}
@@ -520,13 +527,17 @@ out:
void zsoelim_stdin (void *data)
{
struct zsoelim_stdin_data *zsoelim_data = data;
+ gl_list_t empty;
- zsoelim_open_file ("-", NULL, zsoelim_data->path);
+ empty = gl_list_create_empty (GL_LINKEDHASH_LIST, NULL, NULL, NULL,
+ true);
+ zsoelim_open_file ("-", empty, zsoelim_data->path);
+ gl_list_free (empty);
zsoelim_parse_file (zsoelim_data->manpathlist, zsoelim_data->path);
}
struct zsoelim_stdin_data *zsoelim_stdin_data_new (const char *path,
- char * const *manpathlist)
+ gl_list_t manpathlist)
{
struct zsoelim_stdin_data *data = XMALLOC (struct zsoelim_stdin_data);
diff --git a/src/zsoelim_main.c b/src/zsoelim_main.c
index ef6d1b67..da0b0fa0 100644
--- a/src/zsoelim_main.c
+++ b/src/zsoelim_main.c
@@ -27,9 +27,11 @@
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <stdbool.h>
#include <stdlib.h>
#include "argp.h"
+#include "gl_list.h"
#include "progname.h"
#include "xvasprintf.h"
@@ -52,7 +54,7 @@
int quiet = 1;
man_sandbox *sandbox;
-static char *manpathlist[MAXDIRS];
+static gl_list_t manpathlist;
static char **files;
static int num_files;
@@ -75,7 +77,7 @@ static error_t parse_opt (int key, char *arg ATTRIBUTE_UNUSED,
{
switch (key) {
case 'd':
- debug_level = 1;
+ debug_level = true;
return 0;
case 'C':
return 0; /* compatibility with GNU soelim */
@@ -140,7 +142,7 @@ int main (int argc, char *argv[])
manp = add_nls_manpaths (get_manpath (NULL), all_locales);
free (all_locales);
- create_pathlist (manp, manpathlist);
+ manpathlist = create_pathlist (manp);
/* parse files in command line order */
for (i = 0; i < num_files; ++i) {
@@ -152,6 +154,7 @@ int main (int argc, char *argv[])
free_pathlist (manpathlist);
free (manp);
free (internal_locale);
+ sandbox_free (sandbox);
return OK;
}
diff --git a/tools/Makefile.in b/tools/Makefile.in
index d8342001..ed90e1d6 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -99,6 +99,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/m4/man-arg-db.m4 \
$(top_srcdir)/m4/man-arg-device.m4 \
$(top_srcdir)/m4/man-arg-mandirs.m4 \
+ $(top_srcdir)/m4/man-arg-manual.m4 \
$(top_srcdir)/m4/man-arg-override-dir.m4 \
$(top_srcdir)/m4/man-arg-sections.m4 \
$(top_srcdir)/m4/man-arg-setuid.m4 \
@@ -121,7 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/btowc.m4 \
$(top_srcdir)/gl/m4/builtin-expect.m4 \
$(top_srcdir)/gl/m4/canonicalize.m4 \
- $(top_srcdir)/gl/m4/chdir-long.m4 \
+ $(top_srcdir)/gl/m4/chdir-long.m4 $(top_srcdir)/gl/m4/chown.m4 \
$(top_srcdir)/gl/m4/clock_time.m4 $(top_srcdir)/gl/m4/close.m4 \
$(top_srcdir)/gl/m4/closedir.m4 $(top_srcdir)/gl/m4/codeset.m4 \
$(top_srcdir)/gl/m4/d-ino.m4 $(top_srcdir)/gl/m4/d-type.m4 \
@@ -165,7 +166,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/man-arg-automatic-create.m4 \
$(top_srcdir)/gl/m4/intmax_t.m4 \
$(top_srcdir)/gl/m4/inttypes_h.m4 $(top_srcdir)/gl/m4/ioctl.m4 \
$(top_srcdir)/gl/m4/langinfo_h.m4 \
- $(top_srcdir)/gl/m4/largefile.m4 \
+ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lchown.m4 \
$(top_srcdir)/gl/m4/lib-ignore.m4 \
$(top_srcdir)/gl/m4/lib-ld.m4 $(top_srcdir)/gl/m4/lib-link.m4 \
$(top_srcdir)/gl/m4/lib-prefix.m4 \