diff options
author | Colin Watson <cjwatson@debian.org> | 2019-08-03 12:15:34 +0100 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2019-08-03 12:15:34 +0100 |
commit | f22ec2853f6ea2123dc4a1fee566a828e8d86bc6 (patch) | |
tree | b4d8e7309d6d25acee9b3a94f6e07acb209daacd | |
parent | 182141146d0ad9c735949840504bdfc66332da4e (diff) | |
parent | 74d8f72dc1ca9620d3e8e1ae2ed9b19047ba348f (diff) |
Import man-db_2.8.6.orig.tar.xz
-rw-r--r-- | ChangeLog | 670 | ||||
-rw-r--r-- | Makefile.in | 5 | ||||
-rw-r--r-- | NEWS | 41 | ||||
-rw-r--r-- | README | 12 | ||||
-rw-r--r-- | aclocal.m4 | 3 | ||||
-rw-r--r-- | bootstrap.conf | 16 | ||||
-rwxr-xr-x | build-aux/config.guess | 17 | ||||
-rwxr-xr-x | build-aux/config.sub | 16 | ||||
-rw-r--r-- | build-aux/texinfo.tex | 7 | ||||
-rw-r--r-- | config.h.in | 31 | ||||
-rwxr-xr-x | configure | 682 | ||||
-rw-r--r-- | configure.ac | 16 | ||||
-rw-r--r-- | docs/HACKING | 3 | ||||
-rw-r--r-- | docs/INSTALL.quick | 2 | ||||
-rw-r--r-- | docs/Makefile.in | 5 | ||||
-rw-r--r-- | docs/man-db.lsm | 6 | ||||
-rw-r--r-- | gl/lib/Makefile.am | 120 | ||||
-rw-r--r-- | gl/lib/Makefile.in | 306 | ||||
-rw-r--r-- | gl/lib/argp-help.c | 10 | ||||
-rw-r--r-- | gl/lib/argp.h | 9 | ||||
-rw-r--r-- | gl/lib/cdefs.h | 2 | ||||
-rw-r--r-- | gl/lib/chown.c | 151 | ||||
-rw-r--r-- | gl/lib/fchown-stub.c | 16 | ||||
-rw-r--r-- | gl/lib/fcntl.c | 2 | ||||
-rw-r--r-- | gl/lib/file-set.c | 2 | ||||
-rw-r--r-- | gl/lib/gettext.h | 13 | ||||
-rw-r--r-- | gl/lib/gl_anyhash1.h | 31 | ||||
-rw-r--r-- | gl/lib/gl_anyhash2.h | 82 | ||||
-rw-r--r-- | gl/lib/gl_anyhash_primes.h | 87 | ||||
-rw-r--r-- | gl/lib/gl_anylinked_list1.h | 48 | ||||
-rw-r--r-- | gl/lib/gl_anylinked_list2.h | 1195 | ||||
-rw-r--r-- | gl/lib/gl_anyrbtree_list1.h | 76 | ||||
-rw-r--r-- | gl/lib/gl_anyrbtree_list2.h | 1028 | ||||
-rw-r--r-- | gl/lib/gl_anytree_list1.h | 41 | ||||
-rw-r--r-- | gl/lib/gl_anytree_list2.h | 940 | ||||
-rw-r--r-- | gl/lib/gl_array_list.c | 680 | ||||
-rw-r--r-- | gl/lib/gl_array_list.h | 34 | ||||
-rw-r--r-- | gl/lib/gl_hash_map.c | 337 | ||||
-rw-r--r-- | gl/lib/gl_hash_map.h | 34 | ||||
-rw-r--r-- | gl/lib/gl_hash_set.c | 317 | ||||
-rw-r--r-- | gl/lib/gl_hash_set.h | 34 | ||||
-rw-r--r-- | gl/lib/gl_linkedhash_list.c | 116 | ||||
-rw-r--r-- | gl/lib/gl_linkedhash_list.h | 34 | ||||
-rw-r--r-- | gl/lib/gl_list.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_list.h | 843 | ||||
-rw-r--r-- | gl/lib/gl_map.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_map.h | 382 | ||||
-rw-r--r-- | gl/lib/gl_rbtree_list.c | 102 | ||||
-rw-r--r-- | gl/lib/gl_rbtree_list.h | 34 | ||||
-rw-r--r-- | gl/lib/gl_set.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_set.h | 281 | ||||
-rw-r--r-- | gl/lib/gl_xlist.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_xlist.h | 177 | ||||
-rw-r--r-- | gl/lib/gl_xmap.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_xmap.h | 91 | ||||
-rw-r--r-- | gl/lib/gl_xset.c | 3 | ||||
-rw-r--r-- | gl/lib/gl_xset.h | 76 | ||||
-rw-r--r-- | gl/lib/hash-pjw-bare.c | 42 | ||||
-rw-r--r-- | gl/lib/hash-pjw-bare.h | 24 | ||||
-rw-r--r-- | gl/lib/lchown.c | 117 | ||||
-rw-r--r-- | gl/lib/regexec.c | 2 | ||||
-rw-r--r-- | gl/lib/stdopen.c | 66 | ||||
-rw-r--r-- | gl/lib/stdopen.h | 14 | ||||
-rw-r--r-- | gl/lib/sys_stat.in.h | 9 | ||||
-rw-r--r-- | gl/lib/vasnprintf.c | 9 | ||||
-rw-r--r-- | gl/lib/verify.h | 6 | ||||
-rw-r--r-- | gl/lib/xstdopen.c | 35 | ||||
-rw-r--r-- | gl/lib/xstdopen.h | 28 | ||||
-rw-r--r-- | gl/m4/chown.m4 | 208 | ||||
-rw-r--r-- | gl/m4/getcwd-path-max.m4 | 16 | ||||
-rw-r--r-- | gl/m4/gnulib-comp.m4 | 71 | ||||
-rw-r--r-- | gl/m4/lchown.m4 | 38 | ||||
-rw-r--r-- | gl/m4/math_h.m4 | 5 | ||||
-rw-r--r-- | gl/m4/printf.m4 | 190 | ||||
-rw-r--r-- | gl/m4/threadlib.m4 | 82 | ||||
-rw-r--r-- | gl/po/POTFILES.in | 40 | ||||
-rw-r--r-- | gl/po/af.po | 19 | ||||
-rw-r--r-- | gl/po/be.po | 19 | ||||
-rw-r--r-- | gl/po/bg.gmo | bin | 1000 -> 6044 bytes | |||
-rw-r--r-- | gl/po/bg.po | 749 | ||||
-rw-r--r-- | gl/po/ca.po | 19 | ||||
-rw-r--r-- | gl/po/cs.po | 19 | ||||
-rw-r--r-- | gl/po/da.po | 19 | ||||
-rw-r--r-- | gl/po/de.gmo | bin | 3997 -> 4855 bytes | |||
-rw-r--r-- | gl/po/de.po | 454 | ||||
-rw-r--r-- | gl/po/el.po | 19 | ||||
-rw-r--r-- | gl/po/eo.gmo | bin | 3758 -> 4588 bytes | |||
-rw-r--r-- | gl/po/eo.po | 302 | ||||
-rw-r--r-- | gl/po/es.po | 19 | ||||
-rw-r--r-- | gl/po/et.po | 19 | ||||
-rw-r--r-- | gl/po/eu.po | 19 | ||||
-rw-r--r-- | gl/po/fi.po | 19 | ||||
-rw-r--r-- | gl/po/fr.gmo | bin | 4035 -> 4911 bytes | |||
-rw-r--r-- | gl/po/fr.po | 321 | ||||
-rw-r--r-- | gl/po/ga.po | 19 | ||||
-rw-r--r-- | gl/po/gl.po | 19 | ||||
-rw-r--r-- | gl/po/hu.po | 19 | ||||
-rw-r--r-- | gl/po/it.gmo | bin | 3941 -> 4790 bytes | |||
-rw-r--r-- | gl/po/it.po | 296 | ||||
-rw-r--r-- | gl/po/ja.po | 19 | ||||
-rw-r--r-- | gl/po/ko.po | 19 | ||||
-rw-r--r-- | gl/po/man-db-gnulib.pot | 21 | ||||
-rw-r--r-- | gl/po/ms.po | 19 | ||||
-rw-r--r-- | gl/po/nb.po | 19 | ||||
-rw-r--r-- | gl/po/nl.gmo | bin | 3966 -> 4739 bytes | |||
-rw-r--r-- | gl/po/nl.po | 296 | ||||
-rw-r--r-- | gl/po/pl.gmo | bin | 3998 -> 4822 bytes | |||
-rw-r--r-- | gl/po/pl.po | 280 | ||||
-rw-r--r-- | gl/po/pt.gmo | bin | 3979 -> 4716 bytes | |||
-rw-r--r-- | gl/po/pt.po | 672 | ||||
-rw-r--r-- | gl/po/pt_BR.gmo | bin | 3996 -> 4810 bytes | |||
-rw-r--r-- | gl/po/pt_BR.po | 307 | ||||
-rw-r--r-- | gl/po/ro.po | 19 | ||||
-rw-r--r-- | gl/po/ru.gmo | bin | 5060 -> 6161 bytes | |||
-rw-r--r-- | gl/po/ru.po | 309 | ||||
-rw-r--r-- | gl/po/rw.po | 19 | ||||
-rw-r--r-- | gl/po/sk.po | 19 | ||||
-rw-r--r-- | gl/po/sl.po | 19 | ||||
-rw-r--r-- | gl/po/sr.po | 19 | ||||
-rw-r--r-- | gl/po/sv.gmo | bin | 3827 -> 4638 bytes | |||
-rw-r--r-- | gl/po/sv.po | 281 | ||||
-rw-r--r-- | gl/po/tr.po | 19 | ||||
-rw-r--r-- | gl/po/uk.gmo | bin | 4882 -> 5964 bytes | |||
-rw-r--r-- | gl/po/uk.po | 317 | ||||
-rw-r--r-- | gl/po/vi.po | 19 | ||||
-rw-r--r-- | gl/po/zh_CN.po | 19 | ||||
-rw-r--r-- | gl/po/zh_TW.gmo | bin | 638 -> 4389 bytes | |||
-rw-r--r-- | gl/po/zh_TW.po | 792 | ||||
-rw-r--r-- | include/manconfig.h.in | 8 | ||||
-rw-r--r-- | init/Makefile.in | 5 | ||||
-rw-r--r-- | init/systemd/Makefile.in | 5 | ||||
-rw-r--r-- | init/systemd/man-db.service.in | 2 | ||||
-rw-r--r-- | lib/Makefile.am | 8 | ||||
-rw-r--r-- | lib/Makefile.in | 65 | ||||
-rw-r--r-- | lib/README | 6 | ||||
-rw-r--r-- | lib/debug.c | 5 | ||||
-rw-r--r-- | lib/encodings.c | 25 | ||||
-rw-r--r-- | lib/encodings.h | 4 | ||||
-rw-r--r-- | lib/glcontainers.c | 77 | ||||
-rw-r--r-- | lib/glcontainers.h | 72 | ||||
-rw-r--r-- | lib/hashtable.c | 232 | ||||
-rw-r--r-- | lib/hashtable.h | 61 | ||||
-rw-r--r-- | lib/lower.c | 47 | ||||
-rw-r--r-- | lib/lower.h | 24 | ||||
-rw-r--r-- | lib/orderfiles.c | 64 | ||||
-rw-r--r-- | lib/orderfiles.h | 4 | ||||
-rw-r--r-- | lib/pathsearch.c | 25 | ||||
-rw-r--r-- | lib/pathsearch.h | 12 | ||||
-rw-r--r-- | lib/sandbox.c | 34 | ||||
-rw-r--r-- | lib/security.c | 5 | ||||
-rw-r--r-- | lib/security.h | 3 | ||||
-rw-r--r-- | lib/wordfnmatch.c | 23 | ||||
-rw-r--r-- | lib/wordfnmatch.h | 4 | ||||
-rw-r--r-- | lib/xchown.c | 49 | ||||
-rw-r--r-- | lib/xchown.h | 29 | ||||
-rw-r--r-- | libdb/Makefile.in | 5 | ||||
-rw-r--r-- | libdb/db_btree.c | 33 | ||||
-rw-r--r-- | libdb/db_delete.c | 58 | ||||
-rw-r--r-- | libdb/db_gdbm.c | 176 | ||||
-rw-r--r-- | libdb/db_lookup.c | 195 | ||||
-rw-r--r-- | libdb/db_ndbm.c | 8 | ||||
-rw-r--r-- | libdb/db_storage.h | 24 | ||||
-rw-r--r-- | libdb/mydbm.h | 5 | ||||
-rw-r--r-- | m4/man-arg-manual.m4 | 13 | ||||
-rw-r--r-- | m4/man-arg-systemdsystemunitdir.m4 | 16 | ||||
-rw-r--r-- | m4/man-arg-systemdtmpfilesdir.m4 | 16 | ||||
-rw-r--r-- | m4/man-gnu-nroff.m4 | 4 | ||||
-rw-r--r-- | man/Makefile.in | 5 | ||||
-rw-r--r-- | man/da/Makefile.in | 5 | ||||
-rw-r--r-- | man/de/Makefile.in | 5 | ||||
-rw-r--r-- | man/es/Makefile.in | 5 | ||||
-rw-r--r-- | man/fr/Makefile.in | 5 | ||||
-rw-r--r-- | man/id/Makefile.in | 5 | ||||
-rw-r--r-- | man/it/Makefile.in | 5 | ||||
-rw-r--r-- | man/ja/Makefile.in | 5 | ||||
-rw-r--r-- | man/nl/Makefile.in | 5 | ||||
-rw-r--r-- | man/pl/Makefile.in | 5 | ||||
-rw-r--r-- | man/po4a/Makefile.in | 5 | ||||
-rw-r--r-- | man/pt/Makefile.in | 5 | ||||
-rw-r--r-- | man/pt_BR/Makefile.in | 5 | ||||
-rw-r--r-- | man/ru/Makefile.in | 5 | ||||
-rw-r--r-- | man/sr/Makefile.in | 5 | ||||
-rw-r--r-- | man/sv/Makefile.in | 5 | ||||
-rw-r--r-- | man/tr/Makefile.in | 5 | ||||
-rw-r--r-- | man/zh_CN/Makefile.in | 5 | ||||
-rw-r--r-- | manual/Makefile.am | 17 | ||||
-rw-r--r-- | manual/Makefile.in | 111 | ||||
-rw-r--r-- | manual/intro.me | 3 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | po/ast.gmo | bin | 19722 -> 19639 bytes | |||
-rw-r--r-- | po/ast.po | 416 | ||||
-rw-r--r-- | po/ca.gmo | bin | 19798 -> 19717 bytes | |||
-rw-r--r-- | po/ca.po | 416 | ||||
-rw-r--r-- | po/cs.gmo | bin | 20646 -> 20555 bytes | |||
-rw-r--r-- | po/cs.po | 416 | ||||
-rw-r--r-- | po/da.gmo | bin | 18724 -> 18653 bytes | |||
-rw-r--r-- | po/da.po | 416 | ||||
-rw-r--r-- | po/de.gmo | bin | 20441 -> 20376 bytes | |||
-rw-r--r-- | po/de.po | 416 | ||||
-rw-r--r-- | po/eo.gmo | bin | 18856 -> 18792 bytes | |||
-rw-r--r-- | po/eo.po | 416 | ||||
-rw-r--r-- | po/es.gmo | bin | 19849 -> 19771 bytes | |||
-rw-r--r-- | po/es.po | 416 | ||||
-rw-r--r-- | po/fi.gmo | bin | 6228 -> 6150 bytes | |||
-rw-r--r-- | po/fi.po | 416 | ||||
-rw-r--r-- | po/fr.gmo | bin | 20603 -> 20529 bytes | |||
-rw-r--r-- | po/fr.po | 416 | ||||
-rw-r--r-- | po/id.gmo | bin | 19438 -> 19369 bytes | |||
-rw-r--r-- | po/id.po | 416 | ||||
-rw-r--r-- | po/it.gmo | bin | 8590 -> 8451 bytes | |||
-rw-r--r-- | po/it.po | 416 | ||||
-rw-r--r-- | po/ja.gmo | bin | 21625 -> 21551 bytes | |||
-rw-r--r-- | po/ja.po | 416 | ||||
-rw-r--r-- | po/man-db.pot | 415 | ||||
-rw-r--r-- | po/nl.gmo | bin | 17885 -> 17822 bytes | |||
-rw-r--r-- | po/nl.po | 416 | ||||
-rw-r--r-- | po/pl.gmo | bin | 20551 -> 20454 bytes | |||
-rw-r--r-- | po/pl.po | 416 | ||||
-rw-r--r-- | po/pt.gmo | bin | 19244 -> 19180 bytes | |||
-rw-r--r-- | po/pt.po | 416 | ||||
-rw-r--r-- | po/pt_BR.gmo | bin | 19934 -> 19863 bytes | |||
-rw-r--r-- | po/pt_BR.po | 416 | ||||
-rw-r--r-- | po/ro.gmo | bin | 7999 -> 7920 bytes | |||
-rw-r--r-- | po/ro.po | 416 | ||||
-rw-r--r-- | po/ru.gmo | bin | 26190 -> 26101 bytes | |||
-rw-r--r-- | po/ru.po | 416 | ||||
-rw-r--r-- | po/sr.gmo | bin | 25529 -> 25441 bytes | |||
-rw-r--r-- | po/sr.po | 416 | ||||
-rw-r--r-- | po/sv.gmo | bin | 18796 -> 18725 bytes | |||
-rw-r--r-- | po/sv.po | 416 | ||||
-rw-r--r-- | po/tr.gmo | bin | 19265 -> 19201 bytes | |||
-rw-r--r-- | po/tr.po | 416 | ||||
-rw-r--r-- | po/vi.gmo | bin | 21704 -> 21599 bytes | |||
-rw-r--r-- | po/vi.po | 416 | ||||
-rw-r--r-- | po/zh_CN.gmo | bin | 18177 -> 18114 bytes | |||
-rw-r--r-- | po/zh_CN.po | 416 | ||||
-rw-r--r-- | po/zh_TW.gmo | bin | 17751 -> 17692 bytes | |||
-rw-r--r-- | po/zh_TW.po | 416 | ||||
-rw-r--r-- | src/Makefile.in | 5 | ||||
-rw-r--r-- | src/accessdb.c | 3 | ||||
-rw-r--r-- | src/catman.c | 31 | ||||
-rw-r--r-- | src/check_mandirs.c | 160 | ||||
-rw-r--r-- | src/descriptions.c | 75 | ||||
-rw-r--r-- | src/descriptions.h | 15 | ||||
-rw-r--r-- | src/descriptions_store.c | 46 | ||||
-rw-r--r-- | src/globbing.c | 166 | ||||
-rw-r--r-- | src/globbing.h | 8 | ||||
-rw-r--r-- | src/globbing_test.c | 29 | ||||
-rw-r--r-- | src/lexgrog_test.c | 41 | ||||
-rw-r--r-- | src/man.c | 558 | ||||
-rw-r--r-- | src/manconv_main.c | 5 | ||||
-rw-r--r-- | src/mandb.c | 111 | ||||
-rw-r--r-- | src/manp.c | 632 | ||||
-rw-r--r-- | src/manp.h | 14 | ||||
-rw-r--r-- | src/manpath.c | 11 | ||||
-rw-r--r-- | src/straycats.c | 57 | ||||
-rw-r--r-- | src/tests/Makefile.in | 5 | ||||
-rw-r--r-- | src/ult_src.c | 52 | ||||
-rw-r--r-- | src/ult_src.h | 20 | ||||
-rw-r--r-- | src/whatis.c | 234 | ||||
-rw-r--r-- | src/zsoelim.c | 129 | ||||
-rw-r--r-- | src/zsoelim.h | 8 | ||||
-rw-r--r-- | src/zsoelim.l | 67 | ||||
-rw-r--r-- | src/zsoelim_main.c | 9 | ||||
-rw-r--r-- | tools/Makefile.in | 5 |
265 files changed, 21026 insertions, 9697 deletions
@@ -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 \ @@ -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. @@ -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 @@ -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 @@ -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 Binary files differindex ca402813..f8852fe3 100644 --- a/gl/po/bg.gmo +++ b/gl/po/bg.gmo 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 Binary files differindex 35348b90..20e9216d 100644 --- a/gl/po/de.gmo +++ b/gl/po/de.gmo 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 Binary files differindex 9d9a7e57..d08ffb1d 100644 --- a/gl/po/eo.gmo +++ b/gl/po/eo.gmo 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 Binary files differindex 67246f3c..b51d6ae1 100644 --- a/gl/po/fr.gmo +++ b/gl/po/fr.gmo 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 Binary files differindex 04903cb2..7f098688 100644 --- a/gl/po/it.gmo +++ b/gl/po/it.gmo 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\" eÌ€ ambigua. PossibilitaÌ€:" +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 Binary files differindex 45cd10e0..045aeed9 100644 --- a/gl/po/nl.gmo +++ b/gl/po/nl.gmo 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 Binary files differindex 849c43c9..e65ecb7c 100644 --- a/gl/po/pl.gmo +++ b/gl/po/pl.gmo 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 Binary files differindex 9448afa5..bc00ead4 100644 --- a/gl/po/pt.gmo +++ b/gl/po/pt.gmo 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 Binary files differindex 22bbca16..0cbf6aeb 100644 --- a/gl/po/pt_BR.gmo +++ b/gl/po/pt_BR.gmo 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 Binary files differindex 9973fdd3..a244dfe7 100644 --- a/gl/po/ru.gmo +++ b/gl/po/ru.gmo 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 Binary files differindex 046893d7..e081639c 100644 --- a/gl/po/sv.gmo +++ b/gl/po/sv.gmo 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 Binary files differindex c4cf4246..900d70cd 100644 --- a/gl/po/uk.gmo +++ b/gl/po/uk.gmo 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 Binary files differindex 9260e73c..335aea61 100644 --- a/gl/po/zh_TW.gmo +++ b/gl/po/zh_TW.gmo 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 @@ -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 Binary files differ@@ -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" @@ -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" Binary files differ@@ -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" Binary files differ@@ -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" @@ -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." Binary files differ@@ -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" @@ -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" @@ -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ää" Binary files differ@@ -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" @@ -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" Binary files differ@@ -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" Binary files differ@@ -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 "" Binary files differ@@ -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" Binary files differ@@ -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" @@ -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 Binary files differindex dde9888f..c940f377 100644 --- a/po/pt_BR.gmo +++ b/po/pt_BR.gmo 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" @@ -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" Binary files differ@@ -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 "не удалоÑÑŒ воÑÑтановить предыдущий рабочий каталог" @@ -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 "не могу да повратим претходни радни директоријум" @@ -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" @@ -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" @@ -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 Binary files differindex 1974247a..c685d8b8 100644 --- a/po/zh_CN.gmo +++ b/po/zh_CN.gmo 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 Binary files differindex e0d117a6..07c70198 100644 --- a/po/zh_TW.gmo +++ b/po/zh_TW.gmo 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 @@ -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); } @@ -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 @@ -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 \ |